From b57ce8677f3d5ed1c06bd6b46ab73551bbb2524c Mon Sep 17 00:00:00 2001 From: sgilbertson Date: Thu, 23 Feb 2006 20:50:49 +0000 Subject: [PATCH] 2006-02-23 Scott Gilbertson * gnu/awt/j2d/IntegerGraphicsState.java (getClip): Clone clip before returning, handle null clip. (getClipBounds): Handle null clip. * gnu/awt/j2d/Graphics2DImpl.java (clipRect): Handle null clip. * gnu/awt/xlib/XCanvasPeer.java (): (getLocationOnScreen): Implement. * classpath/gnu/java/awt/peer/GLightweightPeer.java (repaint): Merged with Classpath. * classpath/java/awt/Graphics.java (hitClip): Merged with Classpath. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111395 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/ChangeLog | 13 +++++++++++++ libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java | 7 ++++++- libjava/classpath/java/awt/Graphics.java | 3 +++ libjava/gnu/awt/j2d/Graphics2DImpl.java | 6 ++++++ libjava/gnu/awt/j2d/IntegerGraphicsState.java | 6 +++++- libjava/gnu/awt/xlib/XCanvasPeer.java | 6 ++++-- 6 files changed, 37 insertions(+), 4 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index d96d0316a41..6804217ce4f 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,16 @@ +2006-02-23 Scott Gilbertson + + * gnu/awt/j2d/IntegerGraphicsState.java (getClip): Clone clip + before returning, handle null clip. + (getClipBounds): Handle null clip. + * gnu/awt/j2d/Graphics2DImpl.java (clipRect): Handle null clip. + * gnu/awt/xlib/XCanvasPeer.java (): + (getLocationOnScreen): Implement. + * classpath/gnu/java/awt/peer/GLightweightPeer.java + (repaint): Merged with Classpath. + * classpath/java/awt/Graphics.java (hitClip): Merged with + Classpath. + 2006-02-21 Robert Schuster * link.cc: Added variant of create_error_method that diff --git a/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java b/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java index 5252e80f1e0..25735bb745f 100644 --- a/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java @@ -227,7 +227,12 @@ public class GLightweightPeer public void print(Graphics graphics) {} - public void repaint(long tm, int x, int y, int width, int height) {} + public void repaint(long tm, int x, int y, int width, int height) + { + Component p = comp.getParent (); + if(p != null) + p.repaint(tm,x+comp.getX(),y+comp.getY(),width,height); + } public void requestFocus() {} diff --git a/libjava/classpath/java/awt/Graphics.java b/libjava/classpath/java/awt/Graphics.java index a28ca7e428c..09bf7cacffa 100644 --- a/libjava/classpath/java/awt/Graphics.java +++ b/libjava/classpath/java/awt/Graphics.java @@ -617,6 +617,9 @@ public abstract class Graphics */ public boolean hitClip(int x, int y, int width, int height) { + Shape clip = getClip(); + if (clip == null) + return true; return getClip().intersects(x, y, width, height); } diff --git a/libjava/gnu/awt/j2d/Graphics2DImpl.java b/libjava/gnu/awt/j2d/Graphics2DImpl.java index dd46e7fe410..5091af69f69 100644 --- a/libjava/gnu/awt/j2d/Graphics2DImpl.java +++ b/libjava/gnu/awt/j2d/Graphics2DImpl.java @@ -175,6 +175,12 @@ public class Graphics2DImpl extends Graphics2D implements Cloneable public void clipRect(int x, int y, int width, int height) { Shape clip = state.getClip(); + if (clip == null) + { + clip = new Rectangle (x,y,width,height); + setClip (clip); + return; + } if (clip instanceof Rectangle) { Rectangle clipRect = (Rectangle) clip; diff --git a/libjava/gnu/awt/j2d/IntegerGraphicsState.java b/libjava/gnu/awt/j2d/IntegerGraphicsState.java index 4eb4c6182b1..bcfacd008f0 100644 --- a/libjava/gnu/awt/j2d/IntegerGraphicsState.java +++ b/libjava/gnu/awt/j2d/IntegerGraphicsState.java @@ -132,9 +132,11 @@ public class IntegerGraphicsState extends AbstractGraphicsState public Shape getClip() { + if (clip == null) + return null; if (clip instanceof Rectangle) { - Rectangle clipRect = (Rectangle) clip; + Rectangle clipRect = (Rectangle) ((Rectangle) clip).clone(); clipRect.x -= tx; clipRect.y -= ty; return clipRect; @@ -149,6 +151,8 @@ public class IntegerGraphicsState extends AbstractGraphicsState public Rectangle getClipBounds() { + if (clip == null) + return null; Rectangle clipRect = clip.getBounds(); clipRect.x -= tx; diff --git a/libjava/gnu/awt/xlib/XCanvasPeer.java b/libjava/gnu/awt/xlib/XCanvasPeer.java index 74e0dc21212..097ad0e47d2 100644 --- a/libjava/gnu/awt/xlib/XCanvasPeer.java +++ b/libjava/gnu/awt/xlib/XCanvasPeer.java @@ -247,10 +247,12 @@ public class XCanvasPeer implements CanvasPeer gfx2d.setColor(component.getBackground()); return gfx2d; } - + + private Rectangle locationBounds; public Point getLocationOnScreen() { - throw new UnsupportedOperationException("FIXME, not implemented"); + locationBounds = window.getBounds (locationBounds); + return new Point (locationBounds.x,locationBounds.y); } public Dimension getMinimumSize () -- 2.11.0