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
This commit is contained in:
Thomas Fitzsimmons 2005-02-22 06:18:59 +00:00 committed by Thomas Fitzsimmons
parent d5c9fbd953
commit d5d74adf8a
2 changed files with 18 additions and 13 deletions

View file

@ -1,5 +1,8 @@
2005-02-22 Thomas Fitzsimmons <fitzsim@redhat.com> 2005-02-22 Thomas Fitzsimmons <fitzsim@redhat.com>
* java/awt/Robot.java (waitForIdle): Call invokeAndWait on an
empty Runnable.
PR libgcj/17952: PR libgcj/17952:
* gnu/java/awt/peer/gtk/GtkWindowPeer.java, * gnu/java/awt/peer/gtk/GtkWindowPeer.java,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c

View file

@ -40,6 +40,7 @@ package java.awt;
import gnu.java.awt.ClasspathToolkit; import gnu.java.awt.ClasspathToolkit;
import java.lang.reflect.InvocationTargetException;
import java.awt.event.InputEvent; import java.awt.event.InputEvent;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.awt.peer.RobotPeer; import java.awt.peer.RobotPeer;
@ -53,8 +54,8 @@ import java.awt.peer.RobotPeer;
* *
* Since Robot generates native windowing system events, rather than * Since Robot generates native windowing system events, rather than
* simply inserting {@link AWTEvents} on the AWT event queue, its use * simply inserting {@link AWTEvents} on the AWT event queue, its use
* is not restricted to Java programs. It can be to programatically * is not restricted to Java programs. It can be used to
* drive any graphical application. * programatically drive any graphical application.
* *
* This implementation requires an X server that supports the XTest * This implementation requires an X server that supports the XTest
* extension. * 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 () public void waitForIdle ()
{ {
@ -393,17 +395,17 @@ public class Robot
+ "the event dispatch thread"); + "the event dispatch thread");
EventQueue q = Toolkit.getDefaultToolkit ().getSystemEventQueue (); EventQueue q = Toolkit.getDefaultToolkit ().getSystemEventQueue ();
try
while (q.peekEvent () != null)
{ {
try q.invokeAndWait (new Runnable () { public void run () { } });
{ }
wait (); catch (InterruptedException e)
} {
catch (InterruptedException e) System.err.println ("Robot: waitForIdle interrupted");
{ }
System.err.println ("Robot: waitForIdle interrupted"); catch (InvocationTargetException e)
} {
System.err.println ("Robot: waitForIdle cannot invoke target");
} }
} }