mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 09:46:02 +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:
parent
dd8dc157ee
commit
60255bc58d
1 changed files with 14 additions and 3 deletions
|
@ -125,6 +125,7 @@ public class ExpressionInformationControlCreator implements IInformationControlC
|
||||||
private Composite fDetailPaneComposite;
|
private Composite fDetailPaneComposite;
|
||||||
private DetailPaneProxy fDetailPane;
|
private DetailPaneProxy fDetailPane;
|
||||||
private Tree fTree;
|
private Tree fTree;
|
||||||
|
private IViewerUpdateListener fViewerUpdateListener;
|
||||||
|
|
||||||
private ViewerInputService fInputService;
|
private ViewerInputService fInputService;
|
||||||
|
|
||||||
|
@ -312,6 +313,14 @@ public class ExpressionInformationControlCreator implements IInformationControlC
|
||||||
@Override
|
@Override
|
||||||
public void setVisible(boolean visible) {
|
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());
|
persistSettings(getShell());
|
||||||
}
|
}
|
||||||
super.setVisible(visible);
|
super.setVisible(visible);
|
||||||
|
@ -381,7 +390,7 @@ public class ExpressionInformationControlCreator implements IInformationControlC
|
||||||
initSashWeights();
|
initSashWeights();
|
||||||
|
|
||||||
// add update listener to auto-select and display details of root expression
|
// add update listener to auto-select and display details of root expression
|
||||||
fViewer.addViewerUpdateListener(new IViewerUpdateListener() {
|
fViewerUpdateListener = new IViewerUpdateListener() {
|
||||||
@Override
|
@Override
|
||||||
public void viewerUpdatesComplete() {
|
public void viewerUpdatesComplete() {
|
||||||
fViewer.getDisplay().timerExec(100, new Runnable() {
|
fViewer.getDisplay().timerExec(100, new Runnable() {
|
||||||
|
@ -409,7 +418,9 @@ public class ExpressionInformationControlCreator implements IInformationControlC
|
||||||
@Override
|
@Override
|
||||||
public void updateComplete(IViewerUpdate update) {
|
public void updateComplete(IViewerUpdate update) {
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
|
||||||
|
fViewer.addViewerUpdateListener(fViewerUpdateListener);
|
||||||
|
|
||||||
setForegroundColor(getShell().getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
|
setForegroundColor(getShell().getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
|
||||||
setBackgroundColor(getShell().getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
|
setBackgroundColor(getShell().getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
|
||||||
|
|
Loading…
Add table
Reference in a new issue