summaryrefslogtreecommitdiff
path: root/gnu/java/awt/peer/gtk/GtkComponentPeer.java
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2006-02-11 20:45:16 +0000
committerMark Wielaard <mark@klomp.org>2006-02-11 20:45:16 +0000
commitf87886ecabe41379d04e44eede5f07de84ba1277 (patch)
tree1cdb38075fa20b9650ba1a46c73915a56f9c02c1 /gnu/java/awt/peer/gtk/GtkComponentPeer.java
parent761f8fa9bd27fb109e15c13f1aa7774ffccdb7db (diff)
downloadclasspath-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.java28
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 ()