From 21efa3636b20e338ff8a907d330f814537b80dd8 Mon Sep 17 00:00:00 2001 From: Anton Leherbauer Date: Thu, 9 Jul 2009 09:08:29 +0000 Subject: [PATCH] [263521] [debug view][stack] Retrieving limited number of stack frames does not work reliably with breadcrumb. Partial fix: Select new frame after expand stack --- .../ui/viewmodel/launch/StackFramesVMNode.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/StackFramesVMNode.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/StackFramesVMNode.java index 82fa626480a..a2bb40b8f9e 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/StackFramesVMNode.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/StackFramesVMNode.java @@ -699,7 +699,23 @@ public class StackFramesVMNode extends AbstractDMVMNode private void buildDeltaForExpandStackEvent(IExecutionDMContext execDmc, final VMDelta parentDelta, final RequestMonitor rm) { parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT); - rm.done(); + // Retrieve the list of new stack frames, and mark the first frame to be selected. + final int offset = getStackFrameLimit(execDmc) / 2; + getVMProvider().updateNode( + this, + new VMChildrenUpdate( + parentDelta, getVMProvider().getPresentationContext(), offset, offset, + new DataRequestMonitor>(getExecutor(), rm) { + @Override + public void handleCompleted() { + final List data= getData(); + if (data != null && data.size() != 0) { + parentDelta.addNode(data.get(0), offset, IModelDelta.SELECT); + } + rm.done(); + } + }) + ); }