diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XBreakpointUtil.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XBreakpointUtil.java index d5280fc94e6e..09f936bdad72 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XBreakpointUtil.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/breakpoints/XBreakpointUtil.java @@ -26,6 +26,7 @@ import com.intellij.openapi.util.AsyncResult; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.ui.awt.RelativePoint; import com.intellij.xdebugger.XDebuggerManager; import com.intellij.xdebugger.XDebuggerUtil; import com.intellij.xdebugger.XSourcePosition; @@ -62,11 +63,11 @@ public class XBreakpointUtil { public static > XBreakpointType getType(@NotNull B breakpoint) { //noinspection unchecked - return (XBreakpointType)breakpoint.getType(); + return (XBreakpointType)breakpoint.getType(); } @Nullable - public static XBreakpointType findType(@NotNull @NonNls String id) { + public static XBreakpointType findType(@NotNull @NonNls String id) { for (XBreakpointType breakpointType : getBreakpointTypes()) { if (id.equals(breakpointType.getId())) { return breakpointType; @@ -75,7 +76,7 @@ public class XBreakpointUtil { return null; } - public static XBreakpointType[] getBreakpointTypes() { + public static XBreakpointType[] getBreakpointTypes() { return XBreakpointType.EXTENSION_POINT_NAME.getExtensions(); } @@ -136,10 +137,10 @@ public class XBreakpointUtil { */ @NotNull public static AsyncResult toggleLineBreakpoint(@NotNull Project project, - @NotNull XSourcePosition position, - @Nullable Editor editor, - boolean temporary, - boolean moveCarret) { + @NotNull XSourcePosition position, + @Nullable Editor editor, + boolean temporary, + boolean moveCarret) { int lineStart = position.getLine(); VirtualFile file = position.getFile(); // for folded text check each line and find out type with the biggest priority @@ -162,7 +163,8 @@ public class XBreakpointUtil { final XLineBreakpoint breakpoint = breakpointManager.findBreakpointAtLine(type, file, line); if (breakpoint != null && temporary && !breakpoint.isTemporary()) { breakpoint.setTemporary(true); - } else if (type.canPutAt(file, line, project) || breakpoint != null) { + } + else if (type.canPutAt(file, line, project) || breakpoint != null) { if (typeWinner == null || type.getPriority() > typeWinner.getPriority()) { typeWinner = type; lineWinner = line; @@ -178,8 +180,9 @@ public class XBreakpointUtil { if (typeWinner != null) { XSourcePosition winPosition = (lineStart == lineWinner) ? position : XSourcePositionImpl.create(file, lineWinner); if (winPosition != null) { - AsyncResult res = XDebuggerUtilImpl.toggleAndReturnLineBreakpoint(project, typeWinner, winPosition, temporary, - DebuggerUIUtil.calcPopupLocation(editor, lineWinner)); + RelativePoint point = editor != null ? DebuggerUIUtil.calcPopupLocation(editor, lineWinner) : null; + AsyncResult res = + XDebuggerUtilImpl.toggleAndReturnLineBreakpoint(project, typeWinner, winPosition, temporary, point); if (editor != null && lineStart != lineWinner) { int offset = editor.getDocument().getLineStartOffset(lineWinner); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerUIUtil.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerUIUtil.java index c0110780674c..1d7dc8c0e92e 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerUIUtil.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerUIUtil.java @@ -94,7 +94,7 @@ public class DebuggerUIUtil { ApplicationManager.getApplication().invokeLater(runnable); } - public static RelativePoint calcPopupLocation(Editor editor, final int line) { + public static RelativePoint calcPopupLocation(@NotNull Editor editor, final int line) { Point p = editor.logicalPositionToXY(new LogicalPosition(line + 1, 0)); final Rectangle visibleArea = editor.getScrollingModel().getVisibleArea();