diff options
author | Sven Gothel <[email protected]> | 2012-10-05 03:27:44 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2012-10-05 03:27:44 +0200 |
commit | 84632ca22d112da45b807299d2b1f5e4f4107695 (patch) | |
tree | c55ffc06de0a098f8a68aea1443983570b0023a1 /src/newt/classes/com/jogamp | |
parent | a44c2df78f708b315ab68dbee2c68448e2cc6e7e (diff) |
Fix SWTEDTUtil bug, where it simply doesn't start by an implicit 'invoke()' - No NewtCanvasSWT resize, nor input event delivery.
A new EDTUtil instance is not started automatically.
Since SWTEDTUtil is attached to the DisplayImpl later in time, i.e. after it's native creation,
there is no EDTUtil.invoke(..) call which started it.
The not started SWTEDTUtil could not deliver any events.
Fix: Start it explicitly - add API doc comment in Display.setEDTUtil(..)
Diffstat (limited to 'src/newt/classes/com/jogamp')
-rw-r--r-- | src/newt/classes/com/jogamp/newt/Display.java | 8 | ||||
-rw-r--r-- | src/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java | 9 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/newt/classes/com/jogamp/newt/Display.java b/src/newt/classes/com/jogamp/newt/Display.java index 391bccf3d..de1d58068 100644 --- a/src/newt/classes/com/jogamp/newt/Display.java +++ b/src/newt/classes/com/jogamp/newt/Display.java @@ -164,6 +164,14 @@ public abstract class Display { * If <code>newEDTUtil</code> is not null and equals the previous one, * <code>null</code> is returned and no change is being made. * </p> + * <p> + * Note that <code>newEDTUtil</code> will not be started if not done so already, + * to do so you may issue {@link EDTUtil#invoke(boolean, Runnable) invoke} + * on the new EDTUtil: + * <pre> + * newEDTUtil.invoke(true, new Runnable() { public void run() { } } ); + * </pre> + * </p> */ public abstract EDTUtil setEDTUtil(EDTUtil newEDTUtil); diff --git a/src/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java b/src/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java index 36bc3f28f..74611706a 100644 --- a/src/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java +++ b/src/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java @@ -325,8 +325,13 @@ public class NewtCanvasSWT extends Canvas implements WindowClosingProtocol { final int w = clientArea.width; final int h = clientArea.height; - final Display newtDisplay = newtChild.getScreen().getDisplay(); - newtDisplay.setEDTUtil(new SWTEDTUtil(newtDisplay, getDisplay())); + // set SWT EDT and start it + { + final Display newtDisplay = newtChild.getScreen().getDisplay(); + final EDTUtil edt = new SWTEDTUtil(newtDisplay, getDisplay()); + newtDisplay.setEDTUtil(edt); + edt.invoke(true, new Runnable() { public void run() { } } ); // start EDT + } newtChild.setSize(w, h); newtChild.reparentWindow(nativeWindow); |