diff --git a/bundles/org.eclipse.launchbar.ui.controls/src/org/eclipse/launchbar/ui/controls/internal/LaunchBarControl.java b/bundles/org.eclipse.launchbar.ui.controls/src/org/eclipse/launchbar/ui/controls/internal/LaunchBarControl.java index 960ae5fdf4d..7b6e5b7ca61 100644 --- a/bundles/org.eclipse.launchbar.ui.controls/src/org/eclipse/launchbar/ui/controls/internal/LaunchBarControl.java +++ b/bundles/org.eclipse.launchbar.ui.controls/src/org/eclipse/launchbar/ui/controls/internal/LaunchBarControl.java @@ -182,6 +182,10 @@ public class LaunchBarControl implements ILaunchBarListener { @Override public void activeLaunchDescriptorChanged(ILaunchDescriptor descriptor) { + if (container == null || container.isDisposed()) { + return; + } + container.getDisplay().asyncExec(() -> { if (configSelector != null) { configSelector.setDelayedSelection(descriptor, SELECTION_DELAY); @@ -191,13 +195,19 @@ public class LaunchBarControl implements ILaunchBarListener { if (targetSelector == null || targetSelector.isDisposed()) { createTargetSelector(); syncSelectors(); - container.getParent().layout(true); + if (!container.isDisposed()) { + Composite parent = container.getParent(); + parent.layout(true); + } } } else { if (targetSelector != null && !targetSelector.isDisposed()) { onLabel.dispose(); targetSelector.dispose(); - container.getParent().layout(true); + if (!container.isDisposed()) { + Composite parent = container.getParent(); + parent.layout(true); + } } } });