diff options
Diffstat (limited to 'libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java')
-rw-r--r-- | libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java b/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java index 28cc5a5edf5..10d1e96858a 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java @@ -43,12 +43,16 @@ import java.awt.EventQueue; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; +import java.awt.GraphicsConfiguration; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; import java.awt.Image; import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.PaintEvent; import java.awt.event.WindowEvent; +import java.awt.image.VolatileImage; import gnu.x11.Window; import gnu.x11.event.Event; @@ -135,12 +139,22 @@ public class XWindowPeer */ public Graphics getGraphics() { - return new XGraphics(xwindow); + return new XGraphics2D(xwindow); } public Image createImage(int w, int h) { - return new XImage(w, h); + // FIXME: Should return a buffered image. + return createVolatileImage(w, h); + } + + @Override + public VolatileImage createVolatileImage(int width, int height) + { + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice gd = ge.getDefaultScreenDevice(); + GraphicsConfiguration gc = gd.getDefaultConfiguration(); + return gc.createCompatibleVolatileImage(width, height); } /** @@ -168,6 +182,9 @@ public class XWindowPeer new Rectangle(0, 0, w.getWidth(), w.getHeight()))); + Graphics g = getGraphics(); + g.clearRect(0, 0, awtComponent.getWidth(), awtComponent.getHeight()); + g.dispose(); // // Reset input selection. // atts.set_override_redirect(false); // xwindow.change_attributes(atts); @@ -240,7 +257,7 @@ public class XWindowPeer */ public FontMetrics getFontMetrics(Font font) { - XFontPeer fontPeer = (XFontPeer) font.getPeer(); + XFontPeer2 fontPeer = (XFontPeer2) font.getPeer(); return fontPeer.getFontMetrics(font); } |