expand breakpoint groups on double click phpstorm/140.2735
authorEgor.Ushakov <egor.ushakov@jetbrains.com>
Thu, 26 Feb 2015 11:02:59 +0000 (14:02 +0300)
committerEgor.Ushakov <egor.ushakov@jetbrains.com>
Thu, 26 Feb 2015 11:02:59 +0000 (14:02 +0300)
platform/platform-api/src/com/intellij/ui/CheckboxTreeHelper.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/ui/BreakpointsDialog.java

index 917aa95caf6b02ea37e1004f901a1e3aea74ed7c..23234d1be221481b4cfb118707bd7b6f1a1cab50 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -189,7 +189,7 @@ class CheckboxTreeHelper {
             return true;
           }
         }
-        else if (clickCount > 1) {
+        else if (clickCount > 1 && clickCount % 2 == 0) {
           myEventDispatcher.getMulticaster().mouseDoubleClicked(node);
           return true;
         }
index bb7554ef76e6e28667694bd16cb56502fb133cb5..a18061a52e2d498a455dce0b44c3973f229d4ace 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -55,6 +55,7 @@ import org.jetbrains.annotations.Nullable;
 
 import javax.swing.*;
 import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.TreePath;
 import java.awt.*;
 import java.util.*;
 import java.util.List;
@@ -235,7 +236,18 @@ public class BreakpointsDialog extends DialogWrapper {
     final JTree tree = new BreakpointsCheckboxTree(myProject, myTreeController) {
       @Override
       protected void onDoubleClick(CheckedTreeNode node) {
-        navigate(false);
+        if (node instanceof BreakpointsGroupNode) {
+          TreePath path = TreeUtil.getPathFromRoot(node);
+          if (isExpanded(path)) {
+            collapsePath(path);
+          }
+          else {
+            expandPath(path);
+          }
+        }
+        else {
+          navigate(false);
+        }
       }
     };