1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-06 17:26:01 +02:00

Bug 438367 - Expressions shown in advanced hover are re-evaluated on

every debug event

Change-Id: Id281d505ee770ba492ad51a8322a4150aee60401
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/29104
Reviewed-by: Anton Leherbauer <anton.leherbauer@windriver.com>
This commit is contained in:
Marc Khouzam 2014-07-02 08:54:28 -04:00
parent dd8dc157ee
commit 60255bc58d

View file

@ -125,6 +125,7 @@ public class ExpressionInformationControlCreator implements IInformationControlC
private Composite fDetailPaneComposite;
private DetailPaneProxy fDetailPane;
private Tree fTree;
private IViewerUpdateListener fViewerUpdateListener;
private ViewerInputService fInputService;
@ -311,7 +312,15 @@ public class ExpressionInformationControlCreator implements IInformationControlC
@Override
public void setVisible(boolean visible) {
if (!visible) {
if (!visible) {
if (fViewer != null && fViewerUpdateListener != null) {
// Remove update listener to avoid refreshing variables that were
// previously shown in a hover at every step
// Bug 438367
fViewer.removeViewerUpdateListener(fViewerUpdateListener);
fViewerUpdateListener = null;
}
persistSettings(getShell());
}
super.setVisible(visible);
@ -381,7 +390,7 @@ public class ExpressionInformationControlCreator implements IInformationControlC
initSashWeights();
// add update listener to auto-select and display details of root expression
fViewer.addViewerUpdateListener(new IViewerUpdateListener() {
fViewerUpdateListener = new IViewerUpdateListener() {
@Override
public void viewerUpdatesComplete() {
fViewer.getDisplay().timerExec(100, new Runnable() {
@ -409,7 +418,9 @@ public class ExpressionInformationControlCreator implements IInformationControlC
@Override
public void updateComplete(IViewerUpdate update) {
}
});
};
fViewer.addViewerUpdateListener(fViewerUpdateListener);
setForegroundColor(getShell().getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
setBackgroundColor(getShell().getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));