aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/awt/EventQueue.java
diff options
context:
space:
mode:
authorFernando Nasser <fnasser@redhat.com>2004-01-19 14:51:54 +0000
committerFernando Nasser <fnasser@gcc.gnu.org>2004-01-19 14:51:54 +0000
commitaadc6da0c418493c76b3affa3782fcd7ee6a1129 (patch)
treee514a22de9731c68a1c39c2866ac7fad141dc165 /libjava/java/awt/EventQueue.java
parent2c20a17152d3af1ab0788857e6439f1799111183 (diff)
downloadgcc-aadc6da0c418493c76b3affa3782fcd7ee6a1129.zip
gcc-aadc6da0c418493c76b3affa3782fcd7ee6a1129.tar.gz
gcc-aadc6da0c418493c76b3affa3782fcd7ee6a1129.tar.bz2
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
Diffstat (limited to 'libjava/java/awt/EventQueue.java')
-rw-r--r--libjava/java/awt/EventQueue.java14
1 files changed, 12 insertions, 2 deletions
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;
}