提交 46b73227 编写于 作者: P psadhukhan

8156042: Modifiers of swing ActionEvent does not work when "-Djavafx.embed.singleThread=true"

Reviewed-by: azvegint
上级 1a61b7d7
......@@ -191,6 +191,8 @@ public class EventQueue {
return eventLog;
}
private static boolean fxAppThreadIsDispatchThread;
static {
AWTAccessor.setEventQueueAccessor(
new AWTAccessor.EventQueueAccessor() {
......@@ -227,6 +229,13 @@ public class EventQueue {
return eventQueue.getMostRecentEventTimeImpl();
}
});
AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
fxAppThreadIsDispatchThread =
"true".equals(System.getProperty("javafx.embed.singleThread"));
return null;
}
});
}
/**
......@@ -854,9 +863,15 @@ public class EventQueue {
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 @@ public class EventQueue {
private void setCurrentEventAndMostRecentTimeImpl(AWTEvent e) {
pushPopLock.lock();
try {
if (Thread.currentThread() != dispatchThread) {
if (!fxAppThreadIsDispatchThread && Thread.currentThread() != dispatchThread) {
return;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册