src/share/classes/java/awt/EventDispatchThread.java

Print this page

        

@@ -110,11 +110,12 @@
     }
 
     void pumpEventsForFilter(int id, Conditional cond, EventFilter filter) {
         addEventFilter(filter);
         doDispatch = true;
-        while (doDispatch && !isInterrupted() && cond.evaluate()) {
+        while ((doDispatch || getEventQueue().peekEvent() != null) 
+                && !isInterrupted() && cond.evaluate()) {
             pumpOneEventForFilters(id);
         }
         removeEventFilter(filter);
     }