From a90d9dfbf8cef53d276484e8c53fe971559767c8 Mon Sep 17 00:00:00 2001 From: Marc Dumais Date: Fri, 26 Aug 2016 13:00:52 -0400 Subject: [PATCH] Bug 337899 - [debug view][non-stop] Process label is not updated In non-stop mode, when the last thread of a process is resumed, the corresponding process node icon, in the Debug View, is updated to the "running process" one. However the node was not being automatically refreshed, and so still showed the previous "suspended process" icon. This fix adds the necessary Delta to refresh the process node when a IResumedDMEvent is received. Change-Id: Ie7d2b6aef9ae7f5906e4b54470f74ee238e13ef5 --- .../ui/viewmodel/launch/AbstractContainerVMNode.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/AbstractContainerVMNode.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/AbstractContainerVMNode.java index 8948fa044e9..8991e721cf3 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/AbstractContainerVMNode.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/launch/AbstractContainerVMNode.java @@ -32,6 +32,7 @@ import org.eclipse.cdt.dsf.debug.service.IRunControl.IExecutionDMContext; import org.eclipse.cdt.dsf.debug.service.IRunControl.IExecutionDMData; import org.eclipse.cdt.dsf.debug.service.IRunControl.IExecutionDMData2; import org.eclipse.cdt.dsf.debug.service.IRunControl.IExitedDMEvent; +import org.eclipse.cdt.dsf.debug.service.IRunControl.IResumedDMEvent; import org.eclipse.cdt.dsf.debug.service.IRunControl.IStartedDMEvent; import org.eclipse.cdt.dsf.debug.service.IRunControl.StateChangeReason; import org.eclipse.cdt.dsf.debug.ui.viewmodel.SteppingController.SteppingTimedOutEvent; @@ -305,7 +306,10 @@ public abstract class AbstractContainerVMNode extends AbstractExecutionContextVM } else if (e instanceof FullStackRefreshEvent && (((FullStackRefreshEvent)e).getTriggeringEvent() instanceof IContainerSuspendedDMEvent)) { return IModelDelta.CONTENT; - } + } else if (e instanceof IResumedDMEvent) { + return IModelDelta.STATE; + } + return IModelDelta.NO_CHANGE; } @@ -405,7 +409,11 @@ public abstract class AbstractContainerVMNode extends AbstractExecutionContextVM containerTriggerEvent.getTriggeringContexts(), parentDelta, nodeOffset, requestMonitor); return; } - } + } else if (e instanceof IResumedDMEvent) { + // update the container node label + IContainerDMContext containerCtx = DMContexts.getAncestorOfType(dmc, IContainerDMContext.class); + parentDelta.addNode(createVMContext(containerCtx), IModelDelta.STATE); + } requestMonitor.done(); }