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

Commit 2802c7b

Browse files
committed
refactor
1 parent fc41a97 commit 2802c7b

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
@@ -821,47 +821,56 @@ class TreeView
821821
@element.style.display = ''
822822

823823
onMouseDown: (e) ->
824-
if entryToSelect = e.target.closest('.entry')
825-
e.stopPropagation()
824+
return unless entryToSelect = e.target.closest('.entry')
826825

827-
# return early if we're opening a contextual menu (right click) during multi-select mode
828-
if @multiSelectEnabled() and entryToSelect.classList.contains('selected')
826+
e.stopPropagation()
829827

830-
# mouse right click or ctrl click as right click on darwin platforms
831-
if e.button is 2 or (e.ctrlKey and process.platform is 'darwin')
832-
return
833-
else
834-
# allow select if not dragging
835-
{shiftKey, metaKey, ctrlKey} = e
836-
@selectOnMouseUp = {shiftKey, metaKey, ctrlKey}
837-
return
828+
# TODO: meta+click and ctrl+click should not do the same thing on Windows.
829+
# Right now removing metaKey if platform is not darwin breaks tests
830+
# that set the metaKey to true when simulating a cmd+click on macos
831+
# and ctrl+click on windows and linux.
832+
cmdKey = e.metaKey or (e.ctrlKey and process.platform isnt 'darwin')
833+
834+
# return early if clicking on a selected entry
835+
if entryToSelect.classList.contains('selected')
838836

839-
if e.shiftKey and (e.metaKey or (e.ctrlKey and process.platform isnt 'darwin'))
840-
# select continuous from @lastFocusedElement but leave others
841-
@selectContinuousEntries(entryToSelect, false)
842-
@toggleMultiSelectMenu()
843-
else if e.shiftKey
844-
# select continuous from @lastFocusedElement and deselect rest
845-
@selectContinuousEntries(entryToSelect)
846-
@toggleMultiSelectMenu()
847-
# only allow ctrl click for multi selection on non darwin systems
848-
else if e.metaKey or (e.ctrlKey and process.platform isnt 'darwin')
849-
@selectMultipleEntries(entryToSelect)
850-
@lastFocusedElement = entryToSelect
851-
@toggleMultiSelectMenu()
837+
# mouse right click or ctrl click as right click on darwin platforms
838+
if e.button is 2 or (e.ctrlKey and process.platform is 'darwin')
839+
return
852840
else
853-
@selectEntry(entryToSelect)
854-
@showFullMenu()
841+
# allow click on mouseup if not dragging
842+
{shiftKey} = e
843+
@selectOnMouseUp = {shiftKey, cmdKey}
844+
return
845+
846+
if e.shiftKey and cmdKey
847+
# select continuous from @lastFocusedElement but leave others
848+
@selectContinuousEntries(entryToSelect, false)
849+
@toggleMultiSelectMenu()
850+
else if e.shiftKey
851+
# select continuous from @lastFocusedElement and deselect rest
852+
@selectContinuousEntries(entryToSelect)
853+
@toggleMultiSelectMenu()
854+
# only allow ctrl click for multi selection on non darwin systems
855+
else if cmdKey
856+
@selectMultipleEntries(entryToSelect)
857+
@lastFocusedElement = entryToSelect
858+
@toggleMultiSelectMenu()
859+
else
860+
@selectEntry(entryToSelect)
861+
@showFullMenu()
855862

856863
onMouseUp: (e) ->
857864
return unless @selectOnMouseUp?
858865

859-
{shiftKey, metaKey, ctrlKey} = @selectOnMouseUp
866+
{shiftKey, cmdKey} = @selectOnMouseUp
860867
@selectOnMouseUp = null
861868

862869
return unless entryToSelect = e.target.closest('.entry')
863870

864-
if shiftKey and (metaKey or (ctrlKey and process.platform isnt 'darwin'))
871+
e.stopPropagation()
872+
873+
if shiftKey and cmdKey
865874
# select continuous from @lastFocusedElement but leave others
866875
@selectContinuousEntries(entryToSelect, false)
867876
@toggleMultiSelectMenu()
@@ -870,7 +879,7 @@ class TreeView
870879
@selectContinuousEntries(entryToSelect)
871880
@toggleMultiSelectMenu()
872881
# only allow ctrl click for multi selection on non darwin systems
873-
else if metaKey or (ctrlKey and process.platform isnt 'darwin')
882+
else if cmdKey
874883
@deselect([entryToSelect])
875884
@lastFocusedElement = entryToSelect
876885
@toggleMultiSelectMenu()

0 commit comments

Comments
 (0)