From 92aea028d9736e39e38d07c6bf5903c211bffc63 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Mon, 23 Jun 2014 11:01:57 -0400 Subject: [PATCH] Add a bit of history to config selections. --- .../launchbar/core/internal/LaunchBarManager.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/internal/LaunchBarManager.java b/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/internal/LaunchBarManager.java index 162d5809797..e5f4897fb9a 100644 --- a/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/internal/LaunchBarManager.java +++ b/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/internal/LaunchBarManager.java @@ -43,7 +43,7 @@ public class LaunchBarManager extends PlatformObject implements ILaunchBarManage private List listeners = new LinkedList<>(); private List providers = new ArrayList<>(); private Map configDescs = new HashMap<>(); - private ILaunchConfigurationDescriptor activeConfigDesc; + private ILaunchConfigurationDescriptor lastConfigDesc, activeConfigDesc; private ILaunchMode[] launchModes; private ILaunchMode activeLaunchMode; @@ -201,6 +201,7 @@ public class LaunchBarManager extends PlatformObject implements ILaunchBarManage public void setActiveLaunchConfigurationDescriptor(ILaunchConfigurationDescriptor configDesc) throws CoreException { if (activeConfigDesc == configDesc) return; + lastConfigDesc = activeConfigDesc; activeConfigDesc = configDesc; IEclipsePreferences store = InstanceScope.INSTANCE.getNode(Activator.PLUGIN_ID); @@ -283,10 +284,15 @@ public class LaunchBarManager extends PlatformObject implements ILaunchBarManage // Fix up the active config if this one was it if (activeConfigDesc.equals(configDesc)) { try { - if (configDescs.isEmpty()) + if (configDescs.isEmpty()) { setActiveLaunchConfigurationDescriptor(null); - else + } else if (lastConfigDesc != null) { + setActiveLaunchConfigurationDescriptor(lastConfigDesc); + // Clear out the last desc since we just used it + lastConfigDesc = null; + } else { setActiveLaunchConfigurationDescriptor(configDescs.values().iterator().next()); + } } catch (CoreException e) { // TODO log e.printStackTrace();