diff options
author | Thomas Fitzsimmons <fitzsim@redhat.com> | 2005-02-22 06:18:59 +0000 |
---|---|---|
committer | Thomas Fitzsimmons <fitzsim@gcc.gnu.org> | 2005-02-22 06:18:59 +0000 |
commit | d5d74adf8ac65309646e45e6f1c35ed0334a55df (patch) | |
tree | fd9a1d57ef0371391772820cac8168d93affa1b2 /libjava/java/awt | |
parent | d5c9fbd953debfa9265a1b03dec02aad2c013e14 (diff) | |
download | gcc-d5d74adf8ac65309646e45e6f1c35ed0334a55df.zip gcc-d5d74adf8ac65309646e45e6f1c35ed0334a55df.tar.gz gcc-d5d74adf8ac65309646e45e6f1c35ed0334a55df.tar.bz2 |
Robot.java (waitForIdle): Call invokeAndWait on an empty Runnable.
2005-02-22 Thomas Fitzsimmons <fitzsim@redhat.com>
* java/awt/Robot.java (waitForIdle): Call invokeAndWait on an
empty Runnable.
From-SVN: r95384
Diffstat (limited to 'libjava/java/awt')
-rw-r--r-- | libjava/java/awt/Robot.java | 28 |
1 files changed, 15 insertions, 13 deletions
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"); } } |