From c42ffe6014b22e2dc528e4b98f68ebe1118a1fbe Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Fri, 18 Mar 2016 13:04:37 +0300 Subject: [PATCH] correctly show watches tab after add to watch even in mixed watches/variables mode --- .../impl/frame/XWatchesViewImpl.java | 19 +------------------ .../xdebugger/impl/ui/XDebugSessionTab.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 18 deletions(-) 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 3768cbe7fa92..a054592fd78c 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 @@ -15,8 +15,6 @@ */ package com.intellij.xdebugger.impl.frame; -import com.intellij.debugger.ui.DebuggerContentInfo; -import com.intellij.execution.ui.layout.impl.RunnerContentUi; import com.intellij.icons.AllIcons; import com.intellij.ide.DataManager; import com.intellij.ide.dnd.DnDEvent; @@ -292,22 +290,7 @@ public class XWatchesViewImpl extends XVariablesView implements DnDNativeTarget, myRootNode.addWatchExpression(session != null ? session.getCurrentStackFrame() : null, expression, index, navigateToWatchNode); updateSessionData(); if (navigateToWatchNode && session != null) { - showWatchesTab((XDebugSessionImpl)session); - } - } - - private static void showWatchesTab(@NotNull XDebugSessionImpl session) { - XDebugSessionTab tab = session.getSessionTab(); - if (tab != null) { - tab.toFront(false, null); - // restore watches tab if minimized - JComponent component = tab.getUi().getComponent(); - if (component instanceof DataProvider) { - RunnerContentUi ui = RunnerContentUi.KEY.getData(((DataProvider)component)); - if (ui != null) { - ui.restoreContent(DebuggerContentInfo.WATCHES_CONTENT); - } - } + XDebugSessionTab.showWatchesView((XDebugSessionImpl)session); } } 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 33c34fb0bf7f..9f75abf41fe9 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 @@ -24,6 +24,7 @@ import com.intellij.execution.ui.RunContentDescriptor; import com.intellij.execution.ui.RunnerLayoutUi; import com.intellij.execution.ui.actions.CloseAction; import com.intellij.execution.ui.layout.PlaceInGrid; +import com.intellij.execution.ui.layout.impl.RunnerContentUi; import com.intellij.execution.ui.layout.impl.ViewImpl; import com.intellij.icons.AllIcons; import com.intellij.ide.DataManager; @@ -340,6 +341,21 @@ public class XDebugSessionTab extends DebuggerSessionTabBase { } } + public static void showWatchesView(@NotNull XDebugSessionImpl session) { + XDebugSessionTab tab = session.getSessionTab(); + if (tab != null) { + tab.toFront(false, null); + // restore watches tab if minimized + JComponent component = tab.getUi().getComponent(); + if (component instanceof DataProvider) { + RunnerContentUi ui = RunnerContentUi.KEY.getData(((DataProvider)component)); + if (ui != null) { + ui.restoreContent(tab.myWatchesInVariables ? DebuggerContentInfo.VARIABLES_CONTENT : DebuggerContentInfo.WATCHES_CONTENT); + } + } + } + } + private void registerView(String contentId, @NotNull XDebugView view) { myViews.put(contentId, view); Disposer.register(myRunContentDescriptor, view);