diff options
author | Anton Leherbauer | 2014-07-02 13:20:35 +0000 |
---|---|---|
committer | Anton Leherbauer | 2014-10-22 15:16:44 +0000 |
commit | e598699286ab39f12bbcc0d7b1fc2475f11d40f5 (patch) | |
tree | abda27fc4cec13087cd3f26ebcda99e4f132d59b /org.eclipse.debug.ui | |
parent | 1a87f8a17da6bd0130a666455051120c18eb9bc2 (diff) | |
download | eclipse.platform.debug-e598699286ab39f12bbcc0d7b1fc2475f11d40f5.tar.gz eclipse.platform.debug-e598699286ab39f12bbcc0d7b1fc2475f11d40f5.tar.xz eclipse.platform.debug-e598699286ab39f12bbcc0d7b1fc2475f11d40f5.zip |
Bug 438724 - [flex] REVEAL delta does not always work reliablyI20141111-0830I20141111-0800I20141104-0800I20141029-2000I20141029-0800I20141028-2000I20141028-0800I20141027-2000I20141027-0800I20141026-2100
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.java | 19 |
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); } } |