void (@NotNull MouseEvent e) { if (checkIgnore(e)) return; if (e.getSource() == myGutterComponent && !(myMousePressedEvent != null && myMousePressedEvent.isConsumed())) { myGutterComponent.mouseReleased(e); } if (getMouseEventArea(e) != EditorMouseEventArea.EDITING_AREA || e.getY() < 0 || e.getX() < 0) { return; } FoldRegion region = getFoldingModel().getFoldingPlaceholderAt(e.getPoint()); if (region != null && region == myMouseSelectedRegion) { getFoldingModel().runBatchFoldingOperation(() -> region.setExpanded(true), true, false); validateMousePointer(e, null); } // The general idea is to check if the user performed 'caret position change click' (left click most of the time) inside selection // and, in the case of the positive answer, clear selection. Please note that there is a possible case that mouse click // is performed inside selection, but it triggers the context menu. We don't want to drop the selection then. if (myMousePressedEvent != null && myKeepSelectionOnMousePress && !myLastPressWasAtBlockInlay && !myDragStarted && myMousePressedEvent.getClickCount() == 1 && !myMousePressedEvent.isShiftDown() && !myMousePressedEvent.isPopupTrigger() && !isToggleCaretEvent(myMousePressedEvent) && !isCreateRectangularSelectionEvent(myMousePressedEvent)) { getSelectionModel().removeSelection(); } }