From 405bc071d5d13e00d0561a485d31e3a7d61bf167 Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Thu, 21 Feb 2013 14:22:10 +0100
Subject: TestNewtEventModifiers*: Robostness (uhh) Unify wait-clear result
 code - fix SWT event dispatching.

---
 .../com/jogamp/nativewindow/swt/SWTAccessor.java        | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

(limited to 'src/nativewindow/classes/com')

diff --git a/src/nativewindow/classes/com/jogamp/nativewindow/swt/SWTAccessor.java b/src/nativewindow/classes/com/jogamp/nativewindow/swt/SWTAccessor.java
index 5479f2495..5c4fd82d2 100644
--- a/src/nativewindow/classes/com/jogamp/nativewindow/swt/SWTAccessor.java
+++ b/src/nativewindow/classes/com/jogamp/nativewindow/swt/SWTAccessor.java
@@ -482,6 +482,23 @@ public class SWTAccessor {
         }        
     }
     
+   /**
+    * Runs the specified action on the SWT UI thread.
+    * <p>
+    * If <code>display</code> is disposed or the current thread is the SWT UI thread
+    * {@link #invoke(boolean, Runnable)} is being used.
+    * @see #invoke(boolean, Runnable)
+    */
+    public static void invoke(org.eclipse.swt.widgets.Display display, boolean wait, Runnable runnable) {
+        if( display.isDisposed() || Thread.currentThread() == display.getThread() ) {
+            invoke(wait, runnable);
+        } else if( wait ) {            
+            display.syncExec(runnable);
+        } else {
+            display.asyncExec(runnable);
+        }
+    }
+    
     //
     // Specific X11 GTK ChildWindow - Using plain X11 native parenting (works well)
     //
-- 
cgit v1.2.3