From cec2cbf4dca7c5d2e1ef24613dde9d3b45b99fbe Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Mon, 11 Jan 2016 11:37:20 -0500 Subject: [PATCH] launchbar: more reasonable launch target defaults - if new descriptor is created check first of current target is suitable before calling getDefaultTarget - change method getDefaultTarget to return last target from the list rather then first, since list is kept in order of addition, meaning last entry is the most recent Change-Id: I0d9a7760cf52c7dff761f760f3fce05d9ca4c540 Signed-off-by: Alena Laskavaia --- .../launchbar/core/internal/LaunchBarManager.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/LaunchBarManager.java b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/LaunchBarManager.java index 5f5e48d08f1..277888a0a40 100644 --- a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/LaunchBarManager.java +++ b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/LaunchBarManager.java @@ -474,7 +474,6 @@ public class LaunchBarManager implements ILaunchBarManager, ILaunchTargetListene setActiveLaunchTarget(null); return; } - // last stored target from persistent storage String activeTargetId = getPerDescriptorStore().get(PREF_ACTIVE_LAUNCH_TARGET, null); if (activeTargetId != null) { @@ -484,6 +483,12 @@ public class LaunchBarManager implements ILaunchBarManager, ILaunchTargetListene setActiveLaunchTarget(storedTarget); return; } + } else { + // current active target, check if it is supported + if (activeLaunchTarget != null && supportsTarget(activeLaunchDesc, activeLaunchTarget)) { + setActiveLaunchTarget(activeLaunchTarget); + return; + } } // default target for descriptor setActiveLaunchTarget(getDefaultLaunchTarget(activeLaunchDesc)); @@ -721,7 +726,8 @@ public class LaunchBarManager implements ILaunchBarManager, ILaunchTargetListene private ILaunchTarget getDefaultLaunchTarget(ILaunchDescriptor descriptor) { List targets = getLaunchTargets(descriptor); - return targets.isEmpty() ? ILaunchTarget.NULL_TARGET : targets.get(0); + // chances are that better target is most recently added, rather then the oldest + return targets.isEmpty() ? ILaunchTarget.NULL_TARGET : targets.get(targets.size()-1); } public ILaunchConfiguration getActiveLaunchConfiguration() throws CoreException {