correctly show watches tab after add to watch even in mixed watches/variables mode
authorEgor.Ushakov <egor.ushakov@jetbrains.com>
Fri, 18 Mar 2016 10:04:37 +0000 (13:04 +0300)
committerEgor.Ushakov <egor.ushakov@jetbrains.com>
Fri, 18 Mar 2016 10:08:25 +0000 (13:08 +0300)
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/frame/XWatchesViewImpl.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java

index 3768cbe7fa92b39d2a2f4cbf28d8d305043be8a8..a054592fd78c2c2dd38841db668e0f84212f794e 100644 (file)
@@ -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);
     }
   }
 
index 33c34fb0bf7f707ab8a91215636d58c91833f02e..9f75abf41fe995b7c5328253c11447cc0b4a9fc7 100644 (file)
@@ -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);