diff --git a/spec/editor-view-spec.coffee b/spec/editor-view-spec.coffee index 33db23b42..60a014e47 100644 --- a/spec/editor-view-spec.coffee +++ b/spec/editor-view-spec.coffee @@ -1806,6 +1806,17 @@ describe "EditorView", -> runs -> expect(editor.getSoftWrapColumn()).toBeLessThan previousSoftWrapColumn + it "accounts for the width of the scrollbar if there is one", -> + # force the scrollbar to always be visible, regardless of OS visibility setting + $('#jasmine-content').prepend """ + + """ + setEditorHeightInLines(editorView, 5) + setEditorWidthInChars(editorView, 40) + expect(editor.lineForScreenRow(2).text.length).toBe 34 + describe "gutter rendering", -> beforeEach -> editorView.attachToDom(heightInLines: 5.5) diff --git a/src/editor-view.coffee b/src/editor-view.coffee index adb19498e..4cb4ad984 100644 --- a/src/editor-view.coffee +++ b/src/editor-view.coffee @@ -667,11 +667,15 @@ class EditorView extends View @editor.setSoftWrap(not @editor.getSoftWrap()) calculateWidthInChars: -> - Math.floor(@scrollView.width() / @charWidth) + Math.floor((@scrollView.width() - @getScrollbarWidth()) / @charWidth) calculateHeightInLines: -> Math.ceil($(window).height() / @lineHeight) + getScrollbarWidth: -> + scrollbarElement = @verticalScrollbar[0] + scrollbarElement.offsetWidth - scrollbarElement.clientWidth + # Public: Enables/disables soft wrap on the editor. # # softWrap - A {Boolean} which, if `true`, enables soft wrap