diff options
author | Mark Wielaard <mark@klomp.org> | 2006-02-11 20:45:16 +0000 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2006-02-11 20:45:16 +0000 |
commit | f87886ecabe41379d04e44eede5f07de84ba1277 (patch) | |
tree | 1cdb38075fa20b9650ba1a46c73915a56f9c02c1 /gnu/java/awt/peer/gtk/GtkComponentPeer.java | |
parent | 761f8fa9bd27fb109e15c13f1aa7774ffccdb7db (diff) | |
download | classpath-f87886ecabe41379d04e44eede5f07de84ba1277.tar.gz |
* gnu/java/awt/peer/gtk/GtkComponentPeer.java (repaintTimer):
Removed field.
(repaint): Immediately post to queue when tm <= 0, otherwise call
RepaintTimerTask.schedule().
(RepaintTimerTask): Make static.
(RepaintTimerTask.repaintTimer): New static final field.
(RepaintTimerTask.awtComponent): New field.
(schedule): New static method.
Diffstat (limited to 'gnu/java/awt/peer/gtk/GtkComponentPeer.java')
-rw-r--r-- | gnu/java/awt/peer/gtk/GtkComponentPeer.java | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/gnu/java/awt/peer/gtk/GtkComponentPeer.java b/gnu/java/awt/peer/gtk/GtkComponentPeer.java index 1ca367b3b..112e95613 100644 --- a/gnu/java/awt/peer/gtk/GtkComponentPeer.java +++ b/gnu/java/awt/peer/gtk/GtkComponentPeer.java @@ -1,5 +1,6 @@ /* GtkComponentPeer.java -- Implements ComponentPeer with GTK - Copyright (C) 1998, 1999, 2002, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2002, 2004, 2005, 2006 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -87,8 +88,6 @@ public class GtkComponentPeer extends GtkGenericPeer boolean isInRepaint; - static final Timer repaintTimer = new Timer (true); - /* this isEnabled differs from Component.isEnabled, in that it knows if a parent is disabled. In that case Component.isEnabled may return true, but our isEnabled will always return false */ @@ -383,19 +382,30 @@ public class GtkComponentPeer extends GtkGenericPeer if (x == 0 && y == 0 && width == 0 && height == 0) return; - repaintTimer.schedule(new RepaintTimerTask(x, y, width, height), tm); + if (tm <= 0) + q().postEvent(new PaintEvent(awtComponent, PaintEvent.UPDATE, + new Rectangle(x, y, width, height))); + else + RepaintTimerTask.schedule(tm, x, y, width, height, awtComponent); } - private class RepaintTimerTask extends TimerTask + /** + * Used for scheduling delayed paint updates on the event queue. + */ + private static class RepaintTimerTask extends TimerTask { + private static final Timer repaintTimer = new Timer(true); + private int x, y, width, height; + private Component awtComponent; - RepaintTimerTask(int x, int y, int width, int height) + RepaintTimerTask(Component c, int x, int y, int width, int height) { this.x = x; this.y = y; this.width = width; this.height = height; + this.awtComponent = c; } public void run() @@ -403,6 +413,12 @@ public class GtkComponentPeer extends GtkGenericPeer q().postEvent (new PaintEvent (awtComponent, PaintEvent.UPDATE, new Rectangle (x, y, width, height))); } + + static void schedule(long tm, int x, int y, int width, int height, + Component c) + { + repaintTimer.schedule(new RepaintTimerTask(c, x, y, width, height), tm); + } } public void requestFocus () |