Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Leherbauer2014-07-02 13:20:35 +0000
committerAnton Leherbauer2014-10-22 15:16:44 +0000
commite598699286ab39f12bbcc0d7b1fc2475f11d40f5 (patch)
treeabda27fc4cec13087cd3f26ebcda99e4f132d59b /org.eclipse.debug.ui
parent1a87f8a17da6bd0130a666455051120c18eb9bc2 (diff)
downloadeclipse.platform.debug-e598699286ab39f12bbcc0d7b1fc2475f11d40f5.tar.gz
eclipse.platform.debug-e598699286ab39f12bbcc0d7b1fc2475f11d40f5.tar.xz
eclipse.platform.debug-e598699286ab39f12bbcc0d7b1fc2475f11d40f5.zip
Change-Id: Idf22b5a70b0194b8c91b234db3aefc5fde28d559 Signed-off-by: Anton Leherbauer <anton.leherbauer@windriver.com>
Diffstat (limited to 'org.eclipse.debug.ui')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java
index 6a2b05603..f56601bba 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2013 IBM Corporation and others.
+ * Copyright (c) 2006, 2014 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
@@ -10,6 +10,7 @@
* Wind River Systems - Fix for viewer state save/restore [188704]
* Pawel Piech (Wind River) - added support for a virtual tree model viewer (Bug 242489)
* Dorin Ciuca - Top index fix (Bug 324100)
+ * Anton Leherbauer (Wind River) - REVEAL delta does not always work reliably (Bug 438724)
*******************************************************************************/
package org.eclipse.debug.internal.ui.viewers.model;
@@ -131,6 +132,10 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon
private ViewerStateTracker fStateTracker = new ViewerStateTracker(this);
+ private TreePath fRevealPath;
+
+ private int fRevealIndex;
+
/**
* Update type constants
*/
@@ -447,6 +452,7 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon
return;
}
+ fRevealPath = null;
IModelDelta[] deltaArray = new IModelDelta[] { delta };
updateNodes(deltaArray, mask & (IModelDelta.REMOVED | IModelDelta.UNINSTALL));
updateNodes(deltaArray, mask & ITreeModelContentProvider.UPDATE_MODEL_DELTA_FLAGS
@@ -690,6 +696,10 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon
}
if (fRequestsInProgress.isEmpty() && fWaitingRequests.isEmpty() && fModelSequenceRunning) {
fModelSequenceRunning = false;
+ if (fRevealPath != null) {
+ getViewer().reveal(fRevealPath, fRevealIndex);
+ fRevealPath = null;
+ }
if (DebugUIPlugin.DEBUG_UPDATE_SEQUENCE && DebugUIPlugin.DEBUG_TEST_PRESENTATION_ID(getPresentationContext())) {
DebugUIPlugin.trace("MODEL SEQUENCE ENDS"); //$NON-NLS-1$
}
@@ -1609,6 +1619,13 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon
if ((delta.getFlags() & IModelDelta.FORCE) != 0 ||
treeViewer.overrideSelection(treeViewer.getSelection(), new TreeSelection(elementPath)))
{
+ /*
+ * Bug 438724 - Save reveal parameters and redo reveal on
+ * updatesComplete() in case intermediate content updates have
+ * shifted the revealed element again.
+ */
+ fRevealPath = parentPath;
+ fRevealIndex = viewIndex;
treeViewer.reveal(parentPath, viewIndex);
}
}

Back to the top