diff options
author | Pawel Piech | 2012-04-09 17:57:57 +0000 |
---|---|---|
committer | Pawel Piech | 2012-04-09 17:57:57 +0000 |
commit | d8d9bfa70f875a276bd38beba92329bfa1c872c5 (patch) | |
tree | 43d44e6754c01ea0d6d8a8cdfd38398627e03729 /org.eclipse.debug.ui/ui | |
parent | b5b70dd28365c6c1d984a5842c601e788bcf65cf (diff) | |
download | eclipse.platform.debug-d8d9bfa70f875a276bd38beba92329bfa1c872c5.tar.gz eclipse.platform.debug-d8d9bfa70f875a276bd38beba92329bfa1c872c5.tar.xz eclipse.platform.debug-d8d9bfa70f875a276bd38beba92329bfa1c872c5.zip |
Bug 373790 - Debug view stays busy after Resumev20120409-1757N20120416-1918I20120416-1738I20120416-1719I20120416-1643I20120416-1623I20120416-1600I20120416-1508I20120411-2034I20120411-1737I20120411-0906I20120411-0258I20120410-2330I20120410-2037I20120410-1710I20120410-0633I20120410-0320I20120410-0304I20120410-0252I20120410-0238I20120410-0216I20120410-0152I20120410-0136I20120410-0122I20120410-0102I20120410-0049I20120410-0027I20120409-2358I20120409-2119I20120409-2018I20120409-1957I20120409-1911
Fixed busy state in variables view when switching frames rapidly.
Diffstat (limited to 'org.eclipse.debug.ui/ui')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java | 15 |
1 files changed, 11 insertions, 4 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 386fe8c38..20057d563 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 @@ -104,6 +104,12 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon private ListenerList fUpdateListeners = new ListenerList(); /** + * Flag indicating whether we are currently in a model sequence. + * @see IViewerUpdateListener + */ + private boolean fModelSequenceRunning = false; + + /** * Map of updates in progress: element path -> list of requests */ private Map fRequestsInProgress = new HashMap(); @@ -194,7 +200,7 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon if (newInput != null) { installModelProxy(newInput, TreePath.EMPTY); fStateTracker.restoreViewerState(newInput); - } + } } public void addViewerUpdateListener(IViewerUpdateListener listener) { @@ -579,14 +585,14 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon void updateStarted(ViewerUpdateMonitor update) { Assert.isTrue( getViewer().getDisplay().getThread() == Thread.currentThread() ); - boolean begin = fRequestsInProgress.isEmpty(); List requests = (List) fRequestsInProgress.get(update.getSchedulingPath()); if (requests == null) { requests = new ArrayList(); fRequestsInProgress.put(update.getSchedulingPath(), requests); } requests.add(update); - if (begin) { + if (!fModelSequenceRunning) { + fModelSequenceRunning = true; if (DebugUIPlugin.DEBUG_UPDATE_SEQUENCE && DebugUIPlugin.DEBUG_TEST_PRESENTATION_ID(getPresentationContext())) { DebugUIPlugin.trace("MODEL SEQUENCE BEGINS"); //$NON-NLS-1$ } @@ -647,7 +653,8 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon fRequestsInProgress.remove(update.getSchedulingPath()); } } - if (fRequestsInProgress.isEmpty() && fWaitingRequests.isEmpty()) { + if (fRequestsInProgress.isEmpty() && fWaitingRequests.isEmpty() && fModelSequenceRunning) { + fModelSequenceRunning = false; if (DebugUIPlugin.DEBUG_UPDATE_SEQUENCE && DebugUIPlugin.DEBUG_TEST_PRESENTATION_ID(getPresentationContext())) { DebugUIPlugin.trace("MODEL SEQUENCE ENDS"); //$NON-NLS-1$ } |