Improve mini desktop clean up
[lgpl/argeo-commons.git] / swt / org.argeo.swt.minidesktop / src / org / argeo / minidesktop / MiniDesktopManager.java
index 6604b4f3e313a8371ebbdab3c39eb5e9b9fb79af..7bce69f737271fd78a1216903b6b06b9695c5b0e 100644 (file)
@@ -55,8 +55,10 @@ public class MiniDesktopManager {
        public void stop() {
                dispose();
                if (display != null) {
-                       display.dispose();
-                       display = null;
+                       display.syncExec(() -> {
+                               display.dispose();
+                               display = null;
+                       });
                }
        }
 
@@ -288,8 +290,11 @@ public class MiniDesktopManager {
        }
 
        public void dispose() {
-               if (!rootShell.isDisposed())
-                       rootShell.dispose();
+               if (!rootShell.isDisposed()) {
+                       rootShell.getDisplay().syncExec(() -> {
+                               rootShell.dispose();
+                       });
+               }
        }
 
        protected boolean isFullscreen() {