diff --git a/src/text-editor-component.coffee b/src/text-editor-component.coffee index 71ca96d87..8c497bd98 100644 --- a/src/text-editor-component.coffee +++ b/src/text-editor-component.coffee @@ -354,6 +354,7 @@ class TextEditorComponent event.preventDefault() unless previousScrollLeft is @presenter.getScrollLeft() else # Scrolling vertically + @presenter.setScrollingTileId(@tileIdForNode(event.target)) previousScrollTop = @presenter.getScrollTop() @presenter.setScrollTop(previousScrollTop - Math.round(wheelDeltaY * @scrollSensitivity)) event.preventDefault() unless previousScrollTop is @presenter.getScrollTop() @@ -728,11 +729,12 @@ class TextEditorComponent lineNumberNodeForScreenRow: (screenRow) -> @gutterContainerComponent.getLineNumberGutterComponent().lineNumberNodeForScreenRow(screenRow) - screenRowForNode: (node) -> + tileIdForNode: (node) -> while node? - if screenRow = node.dataset.screenRow - return parseInt(screenRow) + if tileId = node.dataset.tileId + return tileId node = node.parentElement + null getFontSize: -> diff --git a/src/text-editor-presenter.coffee b/src/text-editor-presenter.coffee index 59ff21afe..12044bff0 100644 --- a/src/text-editor-presenter.coffee +++ b/src/text-editor-presenter.coffee @@ -905,7 +905,7 @@ class TextEditorPresenter @emitDidUpdateState() - setScrollingTile: (tileId) -> + setScrollingTileId: (tileId) -> if @scrollingTile isnt tileId @scrollingTile = tileId @didStartScrolling() diff --git a/src/tile-component.coffee b/src/tile-component.coffee index 0f366dbdc..5bd299d79 100644 --- a/src/tile-component.coffee +++ b/src/tile-component.coffee @@ -21,14 +21,11 @@ class TileComponent @screenRowsByLineId = {} @lineIdsByScreenRow = {} @domNode ?= document.createElement("div") - @domNode.addEventListener("mousewheel", @onMouseWheel) + @domNode.dataset.tileId = @id @domNode.style.position = "absolute" @domNode.style.display = "block" @domNode.classList.add("tile") - onMouseWheel: => - @presenter.setScrollingTile(@id) - getDomNode: -> @domNode