diff options
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 3 | ||||
-rw-r--r-- | libjava/java/awt/Robot.java | 28 |
2 files changed, 18 insertions, 13 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 904e5b8..03aebc6 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,8 @@ 2005-02-22 Thomas Fitzsimmons <fitzsim@redhat.com> + * java/awt/Robot.java (waitForIdle): Call invokeAndWait on an + empty Runnable. + PR libgcj/17952: * gnu/java/awt/peer/gtk/GtkWindowPeer.java, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c diff --git a/libjava/java/awt/Robot.java b/libjava/java/awt/Robot.java index 49726c8..23b6f81 100644 --- a/libjava/java/awt/Robot.java +++ b/libjava/java/awt/Robot.java @@ -40,6 +40,7 @@ package java.awt; import gnu.java.awt.ClasspathToolkit; +import java.lang.reflect.InvocationTargetException; import java.awt.event.InputEvent; import java.awt.image.BufferedImage; import java.awt.peer.RobotPeer; @@ -53,8 +54,8 @@ import java.awt.peer.RobotPeer; * * Since Robot generates native windowing system events, rather than * simply inserting {@link AWTEvents} on the AWT event queue, its use - * is not restricted to Java programs. It can be to programatically - * drive any graphical application. + * is not restricted to Java programs. It can be used to + * programatically drive any graphical application. * * This implementation requires an X server that supports the XTest * extension. @@ -384,7 +385,8 @@ public class Robot } /** - * Wait until the event dispatch thread is idle. + * Wait until all events currently on the event queue have been + * dispatched. */ public void waitForIdle () { @@ -393,17 +395,17 @@ public class Robot + "the event dispatch thread"); EventQueue q = Toolkit.getDefaultToolkit ().getSystemEventQueue (); - - while (q.peekEvent () != null) + try + { + q.invokeAndWait (new Runnable () { public void run () { } }); + } + catch (InterruptedException e) + { + System.err.println ("Robot: waitForIdle interrupted"); + } + catch (InvocationTargetException e) { - try - { - wait (); - } - catch (InterruptedException e) - { - System.err.println ("Robot: waitForIdle interrupted"); - } + System.err.println ("Robot: waitForIdle cannot invoke target"); } } |