# HG changeset patch # User psadhukhan # Date 1505990857 -19800 # Node ID 7d4896d180e7eb8a9986d5419a3de6f3f36d9616 # Parent eda0a1f0e83ef87a3d527b4de3c364b78ef39035 8156042: Modifiers of swing ActionEvent does not work when "-Djavafx.embed.singleThread=true" Reviewed-by: azvegint diff -r eda0a1f0e83e -r 7d4896d180e7 src/java.desktop/share/classes/java/awt/EventQueue.java --- a/src/java.desktop/share/classes/java/awt/EventQueue.java Thu Sep 21 14:37:47 2017 +0530 +++ b/src/java.desktop/share/classes/java/awt/EventQueue.java Thu Sep 21 16:17:37 2017 +0530 @@ -191,6 +191,8 @@ return eventLog; } + private static boolean fxAppThreadIsDispatchThread; + static { AWTAccessor.setEventQueueAccessor( new AWTAccessor.EventQueueAccessor() { @@ -227,6 +229,13 @@ return eventQueue.getMostRecentEventTimeImpl(); } }); + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + fxAppThreadIsDispatchThread = + "true".equals(System.getProperty("javafx.embed.singleThread")); + return null; + } + }); } /** @@ -854,9 +863,15 @@ private AWTEvent getCurrentEventImpl() { pushPopLock.lock(); try { + if (fxAppThreadIsDispatchThread) { + return (currentEvent != null) + ? currentEvent.get() + : null; + } else { return (Thread.currentThread() == dispatchThread) - ? currentEvent.get() - : null; + ? currentEvent.get() + : null; + } } finally { pushPopLock.unlock(); } @@ -1247,7 +1262,7 @@ private void setCurrentEventAndMostRecentTimeImpl(AWTEvent e) { pushPopLock.lock(); try { - if (Thread.currentThread() != dispatchThread) { + if (!fxAppThreadIsDispatchThread && Thread.currentThread() != dispatchThread) { return; }