Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit d77c861

Browse files
committed
refactor
1 parent 438380b commit d77c861

File tree

1 file changed

+39
-30
lines changed

1 file changed

+39
-30
lines changed

lib/tree-view.coffee

Lines changed: 39 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -847,47 +847,56 @@ class TreeView
847847
@element.style.display = ''
848848

849849
onMouseDown: (e) ->
850-
if entryToSelect = e.target.closest('.entry')
851-
e.stopPropagation()
850+
return unless entryToSelect = e.target.closest('.entry')
852851

853-
# return early if we're opening a contextual menu (right click) during multi-select mode
854-
if @multiSelectEnabled() and entryToSelect.classList.contains('selected')
852+
e.stopPropagation()
855853

856-
# mouse right click or ctrl click as right click on darwin platforms
857-
if e.button is 2 or (e.ctrlKey and process.platform is 'darwin')
858-
return
859-
else
860-
# allow select if not dragging
861-
{shiftKey, metaKey, ctrlKey} = e
862-
@selectOnMouseUp = {shiftKey, metaKey, ctrlKey}
863-
return
854+
# TODO: meta+click and ctrl+click should not do the same thing on Windows.
855+
# Right now removing metaKey if platform is not darwin breaks tests
856+
# that set the metaKey to true when simulating a cmd+click on macos
857+
# and ctrl+click on windows and linux.
858+
cmdKey = e.metaKey or (e.ctrlKey and process.platform isnt 'darwin')
859+
860+
# return early if clicking on a selected entry
861+
if entryToSelect.classList.contains('selected')
864862

865-
if e.shiftKey and (e.metaKey or (e.ctrlKey and process.platform isnt 'darwin'))
866-
# select continuous from @lastFocusedElement but leave others
867-
@selectContinuousEntries(entryToSelect, false)
868-
@toggleMultiSelectMenu()
869-
else if e.shiftKey
870-
# select continuous from @lastFocusedElement and deselect rest
871-
@selectContinuousEntries(entryToSelect)
872-
@toggleMultiSelectMenu()
873-
# only allow ctrl click for multi selection on non darwin systems
874-
else if e.metaKey or (e.ctrlKey and process.platform isnt 'darwin')
875-
@selectMultipleEntries(entryToSelect)
876-
@lastFocusedElement = entryToSelect
877-
@toggleMultiSelectMenu()
863+
# mouse right click or ctrl click as right click on darwin platforms
864+
if e.button is 2 or (e.ctrlKey and process.platform is 'darwin')
865+
return
878866
else
879-
@selectEntry(entryToSelect)
880-
@showFullMenu()
867+
# allow click on mouseup if not dragging
868+
{shiftKey} = e
869+
@selectOnMouseUp = {shiftKey, cmdKey}
870+
return
871+
872+
if e.shiftKey and cmdKey
873+
# select continuous from @lastFocusedElement but leave others
874+
@selectContinuousEntries(entryToSelect, false)
875+
@toggleMultiSelectMenu()
876+
else if e.shiftKey
877+
# select continuous from @lastFocusedElement and deselect rest
878+
@selectContinuousEntries(entryToSelect)
879+
@toggleMultiSelectMenu()
880+
# only allow ctrl click for multi selection on non darwin systems
881+
else if cmdKey
882+
@selectMultipleEntries(entryToSelect)
883+
@lastFocusedElement = entryToSelect
884+
@toggleMultiSelectMenu()
885+
else
886+
@selectEntry(entryToSelect)
887+
@showFullMenu()
881888

882889
onMouseUp: (e) ->
883890
return unless @selectOnMouseUp?
884891

885-
{shiftKey, metaKey, ctrlKey} = @selectOnMouseUp
892+
{shiftKey, cmdKey} = @selectOnMouseUp
886893
@selectOnMouseUp = null
887894

888895
return unless entryToSelect = e.target.closest('.entry')
889896

890-
if shiftKey and (metaKey or (ctrlKey and process.platform isnt 'darwin'))
897+
e.stopPropagation()
898+
899+
if shiftKey and cmdKey
891900
# select continuous from @lastFocusedElement but leave others
892901
@selectContinuousEntries(entryToSelect, false)
893902
@toggleMultiSelectMenu()
@@ -896,7 +905,7 @@ class TreeView
896905
@selectContinuousEntries(entryToSelect)
897906
@toggleMultiSelectMenu()
898907
# only allow ctrl click for multi selection on non darwin systems
899-
else if metaKey or (ctrlKey and process.platform isnt 'darwin')
908+
else if cmdKey
900909
@deselect([entryToSelect])
901910
@lastFocusedElement = entryToSelect
902911
@toggleMultiSelectMenu()

0 commit comments

Comments
 (0)