diff --git a/cnd.debugger.gdb2/src/org/netbeans/modules/cnd/debugger/gdb2/GdbDebuggerImpl.java b/cnd.debugger.gdb2/src/org/netbeans/modules/cnd/debugger/gdb2/GdbDebuggerImpl.java --- a/cnd.debugger.gdb2/src/org/netbeans/modules/cnd/debugger/gdb2/GdbDebuggerImpl.java +++ b/cnd.debugger.gdb2/src/org/netbeans/modules/cnd/debugger/gdb2/GdbDebuggerImpl.java @@ -46,6 +46,8 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.io.File; import java.io.IOException; import java.net.ConnectException; @@ -2849,7 +2851,33 @@ } } } - } + } + + private final class ToolTipSupportPropertyChangeListener implements PropertyChangeListener { + private final GdbVariable v; + + ToolTipSupportPropertyChangeListener(GdbVariable v) { + this.v = v; + } + @Override + public void propertyChange(PropertyChangeEvent evt) { +// System.out.println("ToolTipSupportPropertyChangeListener.propertyChange=" + evt.getPropertyName()); +// System.out.println("ToolTipSupportPropertyChangeListener.propertyChange=" + v.getMIName()); + if (!ToolTipSupport.PROP_STATUS.equals(evt.getPropertyName())) { + + return;//we are interested in status only + } +// System.out.println("ToolTipSupportPropertyChangeListener.status=" + evt.getNewValue()); + if ((((Integer)evt.getNewValue()) == ToolTipSupport.STATUS_HIDDEN)){ + DeleteMIVarCommand cmd = new DeleteMIVarCommand(v); + cmd.dontReportError(); + sendCommandInt(cmd); + ((ToolTipSupport)evt.getSource()).removePropertyChangeListener(this); + } + } + + } + private static final class ModelChangeListenerImpl implements ModelListener { @Override public void modelChanged(ModelEvent event) { @@ -2965,6 +2993,7 @@ ToolTipUI toolTipUI = ViewFactory.getDefault().createToolTip(toolTip, expandable, pinnable); final ToolTipSupport tts = toolTipUI.show(ep); if (tts != null) { + tts.addPropertyChangeListener(new ToolTipSupportPropertyChangeListener(watch)); mcLImpl.registerToolTip(tts, ep, lp); } @@ -2997,6 +3026,7 @@ ToolTipUI toolTipUI = ViewFactory.getDefault().createToolTip(toolTip, expandable, pinnable); final ToolTipSupport tts = toolTipUI.show(ep); if (tts != null) { + tts.addPropertyChangeListener(new ToolTipSupportPropertyChangeListener(watch)); mcLImpl.registerToolTip(tts, ep, lp); } @@ -3548,7 +3578,7 @@ gdb.sendCommand(cmd); } - private void updateMIVar() { + private void updateMIVar() { if (!peculiarity.isLldb()) { String cmdString = "-var-update --all-values * "; // NOI18N MICommand cmd =