From aadc6da0c418493c76b3affa3782fcd7ee6a1129 Mon Sep 17 00:00:00 2001 From: Fernando Nasser Date: Mon, 19 Jan 2004 14:51:54 +0000 Subject: EventQueue.java (getCurrentEvent): Consider that system events may be handled by any queue in the stack. * java/awt/EventQueue.java (getCurrentEvent): Consider that system events may be handled by any queue in the stack. From-SVN: r76150 --- libjava/java/awt/EventQueue.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'libjava/java/awt/EventQueue.java') diff --git a/libjava/java/awt/EventQueue.java b/libjava/java/awt/EventQueue.java index 41dad06..4cb0703 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; } -- cgit v1.1