diff --git a/src/editor-view.coffee b/src/editor-view.coffee index 92e1cd60e..0ff3a07f3 100644 --- a/src/editor-view.coffee +++ b/src/editor-view.coffee @@ -461,21 +461,29 @@ class EditorView extends View selectOnMousemoveUntilMouseup: -> lastMoveEvent = null - moveHandler = (event = lastMoveEvent) => - if event - @editor.selectToScreenPosition(@screenPositionFromMouseEvent(event)) - lastMoveEvent = event - $(document).on "mousemove.editor-#{@id}", moveHandler - interval = setInterval(moveHandler, 20) - - $(document).one "mouseup.editor-#{@id}", => + finalizeSelections = => clearInterval(interval) $(document).off 'mousemove', moveHandler + $(document).off 'mouseup', finalizeSelections + @editor.mergeIntersectingSelections(isReversed: @editor.getLastSelection().isReversed()) @editor.finalizeSelections() @syncCursorAnimations() + moveHandler = (event = lastMoveEvent) => + return unless event? + + if event.which is 1 and @[0].style.display isnt 'none' + @editor.selectToScreenPosition(@screenPositionFromMouseEvent(event)) + lastMoveEvent = event + else + finalizeSelections() + + $(document).on "mousemove.editor-#{@id}", moveHandler + interval = setInterval(moveHandler, 20) + $(document).one "mouseup.editor-#{@id}", finalizeSelections + afterAttach: (onDom) -> return unless onDom