diff options
author | fnasser <fnasser@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-19 14:51:54 +0000 |
---|---|---|
committer | fnasser <fnasser@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-19 14:51:54 +0000 |
commit | 599b97d3b8f1c4cc92af7a02103b92350186f376 (patch) | |
tree | e514a22de9731c68a1c39c2866ac7fad141dc165 /libjava/java/awt/EventQueue.java | |
parent | fea51eac929c4bc60b4e75a13ca674deec587952 (diff) | |
download | ppe42-gcc-599b97d3b8f1c4cc92af7a02103b92350186f376.tar.gz ppe42-gcc-599b97d3b8f1c4cc92af7a02103b92350186f376.zip |
* java/awt/EventQueue.java (getCurrentEvent): Consider that system
events may be handled by any queue in the stack.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76150 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/awt/EventQueue.java')
-rw-r--r-- | libjava/java/awt/EventQueue.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libjava/java/awt/EventQueue.java b/libjava/java/awt/EventQueue.java index 41dad066989..4cb0703ec62 100644 --- a/libjava/java/awt/EventQueue.java +++ b/libjava/java/awt/EventQueue.java @@ -293,8 +293,18 @@ public class EventQueue public static AWTEvent getCurrentEvent() { EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue(); - if (Thread.currentThread() != eq.dispatchThread) - return null; + Thread ct = Thread.currentThread(); + + /* Find out if this thread is the dispatch thread for any of the + EventQueues in the chain */ + while (ct != eq.dispatchThread) + { + // Try next EventQueue, if any + if (eq.next == null) + return null; // Not an event dispatch thread + eq = eq.next; + } + return eq.currentEvent; } |