diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/actions/PinToDebugSessionAction.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/actions/PinToDebugSessionAction.java index e1a01e2b2d8..2b96e991992 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/actions/PinToDebugSessionAction.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/actions/PinToDebugSessionAction.java @@ -7,6 +7,7 @@ * * Contributors: * Marc Dumais (Ericsson) - Initial API and implementation (Bug 441713) + * Marc Dumais (Ericsson) - Bug 442312 *******************************************************************************/ package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.actions; @@ -72,5 +73,7 @@ public class PinToDebugSessionAction extends VisualizerAction { else { m_visualizer.unpin(); } + // update the toolbar + m_visualizer.raiseVisualizerChangedEvent(); } } diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java index f4509f2de14..6ebfcda6c6d 100755 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java @@ -18,6 +18,7 @@ * Marc Dumais (Ericsson) - Bug 409965 * Xavier Raynaud (kalray) - Bug 431935 * Marc Dumais (Ericsson) - Bug 441713 + * Marc Dumais (Ericsson) - Bug 442312 *******************************************************************************/ package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.view; @@ -606,16 +607,21 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer // initialize menu/toolbar actions, if needed createActions(); - toolBarManager.add(m_resumeAction); - toolBarManager.add(m_suspendAction); - toolBarManager.add(m_terminateAction); - - toolBarManager.add(m_separatorAction); - - toolBarManager.add(m_stepReturnAction); - toolBarManager.add(m_stepOverAction); - toolBarManager.add(m_stepIntoAction); - toolBarManager.add(m_dropToFrameAction); + // display debug buttons only if MV is not pinned + // note: if in the future we want to display the debug buttons even + // when pinned, all that needs to be done it to remove this check. + if (!m_pinToDbgSessionAction.isChecked()) { + toolBarManager.add(m_resumeAction); + toolBarManager.add(m_suspendAction); + toolBarManager.add(m_terminateAction); + + toolBarManager.add(m_separatorAction); + + toolBarManager.add(m_stepReturnAction); + toolBarManager.add(m_stepOverAction); + toolBarManager.add(m_stepIntoAction); + toolBarManager.add(m_dropToFrameAction); + } toolBarManager.add(m_pinToDbgSessionAction); updateActions(); @@ -809,6 +815,18 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer m_canvas.requestUpdate(); } + + /** Updates the UI elements such as the toolbar and context menu */ + public void raiseVisualizerChangedEvent() { + // FIXME: replace hack below by raising a new VisualizerChanged + // event, listened-to by VisualizerViewer, that causes it to raise + // its own VISUALIZER_CHANGED event. See bug 442584 for details + + // for now do a non-change to the selection to trigger a call to + // VisualizerView#updateUI() + setSelection(getSelection()); + } + // --- ISelectionChangedListener implementation ---