From 75fe2a076289bd294cd19eb996952d3ddbb527ac Mon Sep 17 00:00:00 2001 From: Uwe Stieber Date: Thu, 26 Jun 2014 10:29:12 +0200 Subject: Target Explorer: Fire source provider change notifications synchronous if called from within the UI thread anyway --- .../src/org/eclipse/tcf/te/tcf/ui/internal/SourceProvider.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/SourceProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/SourceProvider.java index fb15b7b73..a44785149 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/SourceProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/SourceProvider.java @@ -14,6 +14,7 @@ import java.util.HashMap; import java.util.Map; import org.eclipse.core.expressions.IEvaluationContext; +import org.eclipse.swt.widgets.Display; import org.eclipse.tcf.te.runtime.events.ChangeEvent; import org.eclipse.tcf.te.runtime.events.EventManager; import org.eclipse.tcf.te.runtime.interfaces.events.IEventListener; @@ -109,7 +110,9 @@ public class SourceProvider extends AbstractSourceProvider implements IEventList if (changeEvent.getSource() instanceof IDefaultContextService || changeEvent.getSource() == defaultContext) { defaultContext = ServiceManager.getInstance().getService(IDefaultContextService.class).getDefaultContext(null); // Fire the source changed notification within the UI thread - if (PlatformUI.isWorkbenchRunning() && PlatformUI.getWorkbench().getDisplay() != null && !PlatformUI.getWorkbench().getDisplay().isDisposed()) { + if (Display.getCurrent() != null) { + fireSourceChanged(ISources.WORKBENCH, defaultContextSelectionName, defaultContext != null ? defaultContext : IEvaluationContext.UNDEFINED_VARIABLE); + } else if (PlatformUI.isWorkbenchRunning() && PlatformUI.getWorkbench().getDisplay() != null && !PlatformUI.getWorkbench().getDisplay().isDisposed()) { PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { @SuppressWarnings("synthetic-access") @Override -- cgit v1.2.3