summaryrefslogtreecommitdiff
path: root/gnu/java
diff options
context:
space:
mode:
authorSven de Marothy <sven@physto.se>2006-06-01 10:51:16 +0000
committerSven de Marothy <sven@physto.se>2006-06-01 10:51:16 +0000
commit97c19a05d5cf58271c7ef75f8ba76c3144f32b89 (patch)
treecbdd27396575ade82a772c66bab8662024be46b1 /gnu/java
parent16a833a75067d412b2950028b53f48050a5f2b1f (diff)
downloadclasspath-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.java2
-rw-r--r--gnu/java/awt/peer/gtk/GdkTextLayout.java10
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