diff options
| author | Sven de Marothy <sven@physto.se> | 2006-06-01 10:51:16 +0000 |
|---|---|---|
| committer | Sven de Marothy <sven@physto.se> | 2006-06-01 10:51:16 +0000 |
| commit | 97c19a05d5cf58271c7ef75f8ba76c3144f32b89 (patch) | |
| tree | cbdd27396575ade82a772c66bab8662024be46b1 /gnu/java | |
| parent | 16a833a75067d412b2950028b53f48050a5f2b1f (diff) | |
| download | classpath-97c19a05d5cf58271c7ef75f8ba76c3144f32b89.tar.gz | |
2006-06-01 Sven de Marothy <sven@physto.se>
* gnu/java/awt/peer/gtk/CairoGraphics2D.java
(drawImage): Check for zero size.
* gnu/java/awt/peer/gtk/GdkTextLayout.java:
(setFont): Declare new native method.
(GdkTextLayout): Read some attributes.
* include/gnu_java_awt_peer_gtk_GdkTextLayout.h
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
(setFont): New native method.
Diffstat (limited to 'gnu/java')
| -rw-r--r-- | gnu/java/awt/peer/gtk/CairoGraphics2D.java | 2 | ||||
| -rw-r--r-- | gnu/java/awt/peer/gtk/GdkTextLayout.java | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gnu/java/awt/peer/gtk/CairoGraphics2D.java b/gnu/java/awt/peer/gtk/CairoGraphics2D.java index 59d231909..baf8d89c3 100644 --- a/gnu/java/awt/peer/gtk/CairoGraphics2D.java +++ b/gnu/java/awt/peer/gtk/CairoGraphics2D.java @@ -1122,6 +1122,8 @@ public abstract class CairoGraphics2D extends Graphics2D { double scaleX = width / (double) img.getWidth(observer); double scaleY = height / (double) img.getHeight(observer); + if( scaleX == 0 || scaleY == 0 ) + return true; return drawImage(img, new AffineTransform(scaleX, 0f, 0f, scaleY, x, y), bgcolor, observer); diff --git a/gnu/java/awt/peer/gtk/GdkTextLayout.java b/gnu/java/awt/peer/gtk/GdkTextLayout.java index 3be5cdc6c..d6b3de8c0 100644 --- a/gnu/java/awt/peer/gtk/GdkTextLayout.java +++ b/gnu/java/awt/peer/gtk/GdkTextLayout.java @@ -75,6 +75,7 @@ public class GdkTextLayout initStaticState (); } private native void setText(String str); + private native void setFont(GdkFontPeer font); private native void getExtents(double[] inkExtents, double[] logExtents); private native void indexToPos(int idx, double[] pos); @@ -104,6 +105,15 @@ public class GdkTextLayout initState(); attributedString = str; fontRenderContext = frc; + AttributedCharacterIterator aci = str.getIterator(); + char[] chars = new char[aci.getEndIndex() - aci.getBeginIndex()]; + for(int i = aci.getBeginIndex(); i < aci.getEndIndex(); i++) + chars[i] = aci.setIndex(i); + setText(new String(chars)); + + Object fnt = aci.getAttribute(TextAttribute.FONT); + if (fnt != null && fnt instanceof Font) + setFont( (GdkFontPeer) ((Font)fnt).getPeer() ); } protected class CharacterIteratorProxy |
