X-Git-Url: http://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=blobdiff_plain;f=swt%2Frcp%2Forg.argeo.cms.swt.rcp%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Frcp%2FCmsRcpDisplayFactory.java;fp=swt%2Frcp%2Forg.argeo.cms.swt.rcp%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Frcp%2FCmsRcpDisplayFactory.java;h=96de08e10d6c5caedf23da78f819aa67567fe42f;hp=cd554de9d1ec09f63616a11dd1510b99ecd5bc67;hb=b95462873703848193e56fcbe997693630db6121;hpb=55d88fba80cec198a0f11ba7545e19878c51fc5e diff --git a/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/CmsRcpDisplayFactory.java b/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/CmsRcpDisplayFactory.java index cd554de9d..96de08e10 100644 --- a/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/CmsRcpDisplayFactory.java +++ b/swt/rcp/org.argeo.cms.swt.rcp/src/org/argeo/cms/ui/rcp/CmsRcpDisplayFactory.java @@ -61,15 +61,18 @@ public class CmsRcpDisplayFactory { public void run() { try { display = Display.getDefault(); - display.setRuntimeExceptionHandler((e) -> e.printStackTrace()); - display.setErrorHandler((e) -> e.printStackTrace()); - - while (!shutdown) { - if (!display.readAndDispatch()) - display.sleep(); + boolean displayOwner = display.getThread() == this; + if (displayOwner) { + display.setRuntimeExceptionHandler((e) -> e.printStackTrace()); + display.setErrorHandler((e) -> e.printStackTrace()); + + while (!shutdown) { + if (!display.readAndDispatch()) + display.sleep(); + } + display.dispose(); + display = null; } - display.dispose(); - display = null; } catch (UnsatisfiedLinkError e) { logger.log(Level.ERROR, "Cannot load SWT, either because the SWT DLLs are no in the java.library.path," @@ -79,6 +82,7 @@ public class CmsRcpDisplayFactory { } } + @Deprecated public Display getDisplay() { return display; }