--- a/jdk/src/share/classes/java/awt/EventQueue.java Fri Nov 09 14:36:10 2012 -0800
+++ b/jdk/src/share/classes/java/awt/EventQueue.java Thu Nov 15 23:03:31 2012 +0400
@@ -194,7 +194,8 @@
}
public void removeSourceEvents(EventQueue eventQueue,
Object source,
- boolean removeAllEvents) {
+ boolean removeAllEvents)
+ {
eventQueue.removeSourceEvents(source, removeAllEvents);
}
public boolean noEvents(EventQueue eventQueue) {
@@ -203,6 +204,11 @@
public void wakeup(EventQueue eventQueue, boolean isShutdown) {
eventQueue.wakeup(isShutdown);
}
+ public void invokeAndWait(Object source, Runnable r)
+ throws InterruptedException, InvocationTargetException
+ {
+ EventQueue.invokeAndWait(source, r);
+ }
});
}
@@ -1245,8 +1251,14 @@
* @since 1.2
*/
public static void invokeAndWait(Runnable runnable)
- throws InterruptedException, InvocationTargetException {
+ throws InterruptedException, InvocationTargetException
+ {
+ invokeAndWait(Toolkit.getDefaultToolkit(), runnable);
+ }
+ static void invokeAndWait(Object source, Runnable runnable)
+ throws InterruptedException, InvocationTargetException
+ {
if (EventQueue.isDispatchThread()) {
throw new Error("Cannot call invokeAndWait from the event dispatcher thread");
}
@@ -1255,8 +1267,7 @@
Object lock = new AWTInvocationLock();
InvocationEvent event =
- new InvocationEvent(Toolkit.getDefaultToolkit(), runnable, lock,
- true);
+ new InvocationEvent(source, runnable, lock, true);
synchronized (lock) {
Toolkit.getEventQueue().postEvent(event);