< prev index next >

src/java.desktop/share/classes/java/awt/DefaultKeyboardFocusManager.java

Print this page

        

*** 28,37 **** --- 28,39 ---- import java.awt.event.KeyEvent; import java.awt.event.WindowEvent; import java.awt.peer.ComponentPeer; import java.awt.peer.LightweightPeer; import java.lang.ref.WeakReference; + import java.security.AccessController; + import java.security.PrivilegedAction; import java.util.LinkedList; import java.util.Iterator; import java.util.ListIterator; import java.util.Set;
*** 262,279 **** --- 264,296 ---- if (targetAppContext.isDisposed()) { return false; } SunToolkit.postEvent(targetAppContext, se); if (EventQueue.isDispatchThread()) { + if (Thread.currentThread() instanceof EventDispatchThread) { EventDispatchThread edt = (EventDispatchThread) Thread.currentThread(); edt.pumpEvents(SentEvent.ID, new Conditional() { public boolean evaluate() { return !se.dispatched && !targetAppContext.isDisposed(); } }); } else { + new Thread() { + @Override + public void run() { + while(!se.dispatched && !targetAppContext.isDisposed()) { + try { + Thread.sleep(100); + } catch (InterruptedException e) { + break; + } + } + } + }.start(); + } + } else { synchronized (se) { while (!se.dispatched && !targetAppContext.isDisposed()) { try { se.wait(1000); } catch (InterruptedException ie) {
< prev index next >