From d5ea7665419bfd64b1df1982e12031c9f064425f Mon Sep 17 00:00:00 2001 From: Ben Ogle Date: Wed, 18 Jun 2014 14:07:06 -0700 Subject: [PATCH] Make click of fold marker unfold the row --- spec/editor-component-spec.coffee | 11 +++++++++++ src/editor-component.coffee | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/spec/editor-component-spec.coffee b/spec/editor-component-spec.coffee index 7a5ec468a..366b47b5f 100644 --- a/spec/editor-component-spec.coffee +++ b/spec/editor-component-spec.coffee @@ -1007,6 +1007,17 @@ describe "EditorComponent", -> nextAnimationFrame() expect(editor.getSelectedScreenRange()).toEqual [[2, 4], [6, 8]] + describe "when a line is folded", -> + beforeEach -> + editor.foldBufferRow 4 + + describe "when the folded line's fold-marker is clicked", -> + it "unfolds the buffer row", -> + target = component.lineNodeForScreenRow(4).querySelector '.fold-marker' + linesNode.dispatchEvent(buildMouseEvent('mousedown', clientCoordinatesForScreenPosition([4, 8]), {target})) + expect(editor.isFoldedAtBufferRow 4).toBe false + + clientCoordinatesForScreenPosition = (screenPosition) -> positionOffset = editor.pixelPositionForScreenPosition(screenPosition) scrollViewClientRect = node.querySelector('.scroll-view').getBoundingClientRect() diff --git a/src/editor-component.coffee b/src/editor-component.coffee index 282b5e913..7ddddd323 100644 --- a/src/editor-component.coffee +++ b/src/editor-component.coffee @@ -485,6 +485,11 @@ EditorComponent = React.createClass {detail, shiftKey, metaKey} = event screenPosition = @screenPositionForMouseEvent(event) + if event.target?.classList.contains('fold-marker') + bufferRow = editor.bufferRowForScreenRow(screenPosition.row) + editor.unfoldBufferRow(bufferRow) + return + if shiftKey editor.selectToScreenPosition(screenPosition) else if metaKey