diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XWatchesViewImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XWatchesViewImpl.java index a054592fd78c..516b4468e99e 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XWatchesViewImpl.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XWatchesViewImpl.java @@ -300,14 +300,11 @@ public class XWatchesViewImpl extends XVariablesView implements DnDNativeTarget, @Override public void processSessionEvent(@NotNull final SessionEvent event) { - if (myWatchesInVariables || - getPanel().isShowing() || - ApplicationManager.getApplication().isUnitTestMode()) { + if (getPanel().isShowing() || ApplicationManager.getApplication().isUnitTestMode()) { myRebuildNeeded = false; } else { myRebuildNeeded = true; - return; } super.processSessionEvent(event); } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java index 9a2e1dbaec1a..43266062a9f3 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java @@ -121,8 +121,7 @@ public class XDebugSessionTab extends DebuggerSessionTabBase { @Override public void selectionChanged(ContentManagerEvent event) { Content content = event.getContent(); - XDebugSessionImpl session = mySession; - if (session != null && content.isSelected() && DebuggerContentInfo.WATCHES_CONTENT.equals(ViewImpl.ID.get(content))) { + if (mySession != null && content.isSelected() && getWatchesContentId().equals(ViewImpl.ID.get(content))) { myRebuildWatchesRunnable.run(); } } @@ -340,12 +339,17 @@ public class XDebugSessionTab extends DebuggerSessionTabBase { if (component instanceof DataProvider) { RunnerContentUi ui = RunnerContentUi.KEY.getData(((DataProvider)component)); if (ui != null) { - ui.restoreContent(tab.myWatchesInVariables ? DebuggerContentInfo.VARIABLES_CONTENT : DebuggerContentInfo.WATCHES_CONTENT); + ui.restoreContent(tab.getWatchesContentId()); } } } } + @NotNull + private String getWatchesContentId() { + return myWatchesInVariables ? DebuggerContentInfo.VARIABLES_CONTENT : DebuggerContentInfo.WATCHES_CONTENT; + } + private void registerView(String contentId, @NotNull XDebugView view) { myViews.put(contentId, view); Disposer.register(myRunContentDescriptor, view); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/WatchNodeImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/WatchNodeImpl.java index 38618c7ede39..362bac2ac83b 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/WatchNodeImpl.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/WatchNodeImpl.java @@ -42,7 +42,7 @@ public class WatchNodeImpl extends XValueNodeImpl implements WatchNode { @NotNull WatchesRootNode parent, @NotNull XExpression expression, @Nullable XStackFrame stackFrame) { - super(tree, parent, expression.getExpression(), new XWatchValue(expression, stackFrame)); + super(tree, parent, expression.getExpression(), new XWatchValue(expression, tree.isShowing() ? stackFrame : null)); myExpression = expression; }