From a33d603401c2dc3b8c4e1bcd743c68039759eff2 Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Tue, 28 Jun 2016 22:04:24 +0300 Subject: [PATCH] https://github.com/JetBrains/intellij-community/pull/409 --- .../BreakpointsFavoriteListProvider.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java index ac89b4d46ec0..89f937f37b52 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/BreakpointsFavoriteListProvider.java @@ -165,7 +165,15 @@ public class BreakpointsFavoriteListProvider extends AbstractFavoritesListProvid @Override public boolean willHandle(@NotNull CommonActionsPanel.Buttons type, Project project, @NotNull Set selectedObjects) { - return (selectedObjects.size() == 1 && (type == CommonActionsPanel.Buttons.EDIT || type == CommonActionsPanel.Buttons.REMOVE)) && + if (selectedObjects.size() >= 1 && type == CommonActionsPanel.Buttons.REMOVE) { + for (Object selectedObject : selectedObjects) { + if (!(((AbstractTreeNode)selectedObject).getValue() instanceof BreakpointItem)) { + return false; // Not all selected items are breakpoints + } + } + return true; + } + return selectedObjects.size() == 1 && type == CommonActionsPanel.Buttons.EDIT && ((AbstractTreeNode)selectedObjects.iterator().next()).getValue() instanceof BreakpointItem; } @@ -179,15 +187,18 @@ public class BreakpointsFavoriteListProvider extends AbstractFavoritesListProvid bounds = tree.getVisibleRect().intersection(bounds); } Point whereToShow = new Point((int)bounds.getCenterX(), (int)bounds.getCenterY()); - BreakpointItem breakpointItem = (BreakpointItem)((AbstractTreeNode)selectedObjects.iterator().next()).getValue(); switch (type) { case EDIT: + BreakpointItem breakpointItem = (BreakpointItem)((AbstractTreeNode)selectedObjects.iterator().next()).getValue(); DebuggerSupport debuggerSupport = XBreakpointUtil.getDebuggerSupport(myProject, breakpointItem); - if (debuggerSupport == null) return; + if (debuggerSupport == null || breakpointItem == null) return; debuggerSupport.getEditBreakpointAction().editBreakpoint(myProject, component, whereToShow, breakpointItem); break; case REMOVE: - breakpointItem.removed(myProject); + for (Object selectedObject : selectedObjects) { + BreakpointItem removeBreakpointItem = (BreakpointItem)((AbstractTreeNode)selectedObject).getValue(); + removeBreakpointItem.removed(myProject); + } break; default: break; } @@ -224,4 +235,4 @@ public class BreakpointsFavoriteListProvider extends AbstractFavoritesListProvid renderer.append(String.valueOf(value)); } } -} +} \ No newline at end of file