Hi Justin, That looks great. Can you submit that as a gerrit so we can merge it in? https://wiki.eclipse.org/Nebula/Contributions
Thanks Jonah ~~~ Jonah Graham Kichwa Coders Ltd. www.kichwacoders.com On 12 January 2018 at 22:45, Justin Dolezy <[email protected]> wrote: > Hi, > > There’s a flaw in Gallery where “Widget is disposed” can be triggered; I can > make this happen by scrolling a gallery with lots of items and then closing > the view it’s being used in. Even easier to repro if using a > ScrollingSmoother. Stack trace is below. > > Fix is simple: > > ### Eclipse Workspace Patch 1.0 > #P org.eclipse.nebula.widgets.gallery > diff --git src/org/eclipse/nebula/widgets/gallery/Gallery.java > src/org/eclipse/nebula/widgets/gallery/Gallery.java > index 72d8c7f..e1b9881 100644 > --- src/org/eclipse/nebula/widgets/gallery/Gallery.java > +++ src/org/eclipse/nebula/widgets/gallery/Gallery.java > @@ -1272,7 +1272,9 @@ > > protected class RedrawTimer implements Runnable { > public void run() { > - redraw(); > + if (!isDisposed()) { > + redraw(); > + } > } > } > > Hopefully this can be incorporated? > > Regards, > Justin > > > org.eclipse.swt.SWTException: Widget is disposed > at org.eclipse.swt.SWT.error(SWT.java:4533) > at org.eclipse.swt.SWT.error(SWT.java:4448) > at org.eclipse.swt.SWT.error(SWT.java:4419) > at org.eclipse.swt.widgets.Widget.error(Widget.java:800) > at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:589) > at org.eclipse.swt.widgets.Control.redraw(Control.java:2860) > at > org.eclipse.nebula.widgets.gallery.Gallery$RedrawTimer.run(Gallery.java:1275) > at org.eclipse.swt.widgets.Display.runTimers(Display.java:4231) > at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3689) > at > org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1147) > at > org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) > at > org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1036) > at > org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153) > at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680) > at > org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) > at > org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594) > at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) > at com.neckdiagrams.main.Application.start(Application.java:97) > at > org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) > at > org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) > at > org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) > at > org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) > at > org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653) > at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) > at org.eclipse.equinox.launcher.Main.run(Main.java:1499) > at org.eclipse.equinox.launcher.Main.main(Main.java:1472) > > > _______________________________________________ > nebula-dev mailing list > [email protected] > To change your delivery options, retrieve your password, or unsubscribe from > this list, visit > https://dev.eclipse.org/mailman/listinfo/nebula-dev _______________________________________________ nebula-dev mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/nebula-dev
