mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Bug 399281 - MulticoreVisualizer: disposeVisualizer() is not getting
called when visualizer view is closed Change-Id: Ibd80373986af0fdedde42146862f89cdcded7099 Reviewed-on: https://git.eclipse.org/r/10113 Reviewed-by: William Swanson <traveler@tilera.com> IP-Clean: William Swanson <traveler@tilera.com> Tested-by: William Swanson <traveler@tilera.com>
This commit is contained in:
parent
ffe8836c1b
commit
0d41eeea6c
4 changed files with 31 additions and 9 deletions
|
@ -8,6 +8,7 @@
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* William R. Swanson (Tilera Corporation) - initial API and implementation
|
* William R. Swanson (Tilera Corporation) - initial API and implementation
|
||||||
* IBM Corporation
|
* IBM Corporation
|
||||||
|
* Marc Dumais (Ericsson) - Bug 399281
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.view;
|
package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.view;
|
||||||
|
@ -705,10 +706,11 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer
|
||||||
protected void setCanvasModel(VisualizerModel model) {
|
protected void setCanvasModel(VisualizerModel model) {
|
||||||
final VisualizerModel model_f = model;
|
final VisualizerModel model_f = model;
|
||||||
GUIUtils.exec(new Runnable() { @Override public void run() {
|
GUIUtils.exec(new Runnable() { @Override public void run() {
|
||||||
m_canvas.setModel(model_f);
|
if(m_canvas != null) {
|
||||||
|
m_canvas.setModel(model_f);
|
||||||
// Update the canvas's selection from the current workbench selection.
|
// Update the canvas's selection from the current workbench selection.
|
||||||
updateCanvasSelectionInternal();
|
updateCanvasSelectionInternal();
|
||||||
|
}
|
||||||
}});
|
}});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
* Marc Dumais (Ericsson) - Bug 396184
|
* Marc Dumais (Ericsson) - Bug 396184
|
||||||
* Marc Dumais (Ericsson) - Bug 396200
|
* Marc Dumais (Ericsson) - Bug 396200
|
||||||
* Marc Dumais (Ericsson) - Bug 396293
|
* Marc Dumais (Ericsson) - Bug 396293
|
||||||
|
* Marc Dumais (Ericsson) - Bug 399281
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.view;
|
package org.eclipse.cdt.dsf.gdb.multicorevisualizer.internal.ui.view;
|
||||||
|
@ -303,7 +304,9 @@ public class MulticoreVisualizerCanvas extends GraphicCanvas
|
||||||
*/
|
*/
|
||||||
public void requestUpdate() {
|
public void requestUpdate() {
|
||||||
GUIUtils.exec(new Runnable() { @Override public void run() {
|
GUIUtils.exec(new Runnable() { @Override public void run() {
|
||||||
m_updateTimer.start();
|
if (m_updateTimer != null) {
|
||||||
|
m_updateTimer.start();
|
||||||
|
}
|
||||||
}});
|
}});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -867,7 +870,9 @@ public class MulticoreVisualizerCanvas extends GraphicCanvas
|
||||||
/** Removes external listener for selection change events. */
|
/** Removes external listener for selection change events. */
|
||||||
@Override
|
@Override
|
||||||
public void removeSelectionChangedListener(ISelectionChangedListener listener) {
|
public void removeSelectionChangedListener(ISelectionChangedListener listener) {
|
||||||
m_selectionManager.removeSelectionChangedListener(listener);
|
if (m_selectionManager != null) {
|
||||||
|
m_selectionManager.removeSelectionChangedListener(listener);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Raises selection changed event. */
|
/** Raises selection changed event. */
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* William R. Swanson (Tilera Corporation)
|
* William R. Swanson (Tilera Corporation)
|
||||||
|
* Marc Dumais (Ericsson) - Bug 399281
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.cdt.visualizer.ui;
|
package org.eclipse.cdt.visualizer.ui;
|
||||||
|
@ -29,6 +30,8 @@ import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||||
import org.eclipse.jface.viewers.ISelectionProvider;
|
import org.eclipse.jface.viewers.ISelectionProvider;
|
||||||
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
||||||
import org.eclipse.swt.SWT;
|
import org.eclipse.swt.SWT;
|
||||||
|
import org.eclipse.swt.events.DisposeEvent;
|
||||||
|
import org.eclipse.swt.events.DisposeListener;
|
||||||
import org.eclipse.swt.events.MenuDetectEvent;
|
import org.eclipse.swt.events.MenuDetectEvent;
|
||||||
import org.eclipse.swt.events.MenuDetectListener;
|
import org.eclipse.swt.events.MenuDetectListener;
|
||||||
import org.eclipse.swt.events.PaintEvent;
|
import org.eclipse.swt.events.PaintEvent;
|
||||||
|
@ -97,6 +100,13 @@ public class VisualizerViewer extends PageBook
|
||||||
public VisualizerViewer(VisualizerView view, Composite parent) {
|
public VisualizerViewer(VisualizerView view, Composite parent) {
|
||||||
super(parent, SWT.NONE);
|
super(parent, SWT.NONE);
|
||||||
initVisualizerViewer(view, parent);
|
initVisualizerViewer(view, parent);
|
||||||
|
// so we're notified when the widget is disposed
|
||||||
|
addDisposeListener(new DisposeListener() {
|
||||||
|
@Override
|
||||||
|
public void widgetDisposed(DisposeEvent e) {
|
||||||
|
dispose();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Dispose method. */
|
/** Dispose method. */
|
||||||
|
@ -431,7 +441,9 @@ public class VisualizerViewer extends PageBook
|
||||||
|
|
||||||
/** Removes external listener for selection change events. */
|
/** Removes external listener for selection change events. */
|
||||||
public void removeSelectionChangedListener(ISelectionChangedListener listener) {
|
public void removeSelectionChangedListener(ISelectionChangedListener listener) {
|
||||||
m_selectionManager.removeSelectionChangedListener(listener);
|
if(m_selectionManager != null) {
|
||||||
|
m_selectionManager.removeSelectionChangedListener(listener);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Raises selection changed event. */
|
/** Raises selection changed event. */
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
*
|
*
|
||||||
* Contributors:
|
* Contributors:
|
||||||
* William R. Swanson (Tilera Corporation)
|
* William R. Swanson (Tilera Corporation)
|
||||||
|
* Marc Dumais (Ericsson) - Bug 399281
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
package org.eclipse.cdt.visualizer.ui.canvas;
|
package org.eclipse.cdt.visualizer.ui.canvas;
|
||||||
|
@ -68,8 +69,10 @@ public class BufferedCanvas extends Canvas
|
||||||
|
|
||||||
/** Cleans up control. */
|
/** Cleans up control. */
|
||||||
protected void cleanupBufferedCanvas() {
|
protected void cleanupBufferedCanvas() {
|
||||||
removePaintListener(this);
|
if(!this.isDisposed()) {
|
||||||
removeControlListener(this);
|
removePaintListener(this);
|
||||||
|
removeControlListener(this);
|
||||||
|
}
|
||||||
if (m_doubleBuffer != null) {
|
if (m_doubleBuffer != null) {
|
||||||
m_doubleBuffer.dispose();
|
m_doubleBuffer.dispose();
|
||||||
m_doubleBuffer = null;
|
m_doubleBuffer = null;
|
||||||
|
|
Loading…
Add table
Reference in a new issue