Bug 575487 - [GTK] Crash in Plug-in Images Browser

Move ImageBrowserView.scanImages(), called from the views Spinner widget
ModifyListener, to a Display.asyncExec() call. This prevents a crash in
GTK3, likely caused by disposing widgets (via scanImages()) "at the
wrong time".

Change-Id: I96a9d27769a81dc89ae5ee1f07d092205bde5e16
Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
Reviewed-on: https://git.eclipse.org/r/c/pde/eclipse.pde.ui/+/184253
Tested-by: PDE Bot <pde-bot@eclipse.org>
Reviewed-by: Andrey Loskutov <loskutov@gmx.de>
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/imagebrowser/ImageBrowserView.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/imagebrowser/ImageBrowserView.java
index 80e27dd..78f7cec 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/imagebrowser/ImageBrowserView.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/imagebrowser/ImageBrowserView.java
@@ -181,8 +181,13 @@
 		spinMaxImages.setSelection(250);
 		spinMaxImages.setLayoutData(GridDataFactory.fillDefaults().create());
 		spinMaxImages.addModifyListener(e -> {
-			page = 0; // reset to 1st page
-			scanImages();
+			Display.getCurrent().asyncExec(new Runnable() {
+				@Override
+				public void run() {
+					page = 0; // reset to 1st page
+					scanImages();
+				}
+			});
 		});
 
 		Composite filterComp = SWTFactory.createComposite(topComp, 2, 1, SWT.NONE, 0, 0);