diff options
-rw-r--r-- | bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/GenericHistoryView.java | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/GenericHistoryView.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/GenericHistoryView.java index 29be3085b..68855930b 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/GenericHistoryView.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/history/GenericHistoryView.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2012 IBM Corporation and others. + * Copyright (c) 2006, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -302,22 +302,31 @@ public class GenericHistoryView extends PageBookView implements IHistoryView, IP private ISelectionListener selectionListener = new ISelectionListener() { - public void selectionChanged(IWorkbenchPart part, ISelection selection) { + private boolean isUpdatingSelection = false; - if (GenericHistoryView.this == part) + public void selectionChanged(IWorkbenchPart part, ISelection selection) { + if (isUpdatingSelection) return; - if (selection instanceof IStructuredSelection) { - IStructuredSelection structSelection = (IStructuredSelection) selection; - //Always take the first element - this is not intended to work with multiple selection - //Also, hang on to this selection for future use in case the history view is not visible - lastSelectedElement = structSelection.getFirstElement(); - - if (!isLinkingEnabled() || !checkIfPageIsVisible()) { + try { + isUpdatingSelection = true; + if (GenericHistoryView.this == part) return; + + if (selection instanceof IStructuredSelection) { + IStructuredSelection structSelection = (IStructuredSelection) selection; + //Always take the first element - this is not intended to work with multiple selection + //Also, hang on to this selection for future use in case the history view is not visible + lastSelectedElement = structSelection.getFirstElement(); + + if (!isLinkingEnabled() || !checkIfPageIsVisible()) { + return; + } + + showLastSelectedElement(); } - - showLastSelectedElement(); + } finally { + isUpdatingSelection = false; } } |