Fix 0-width cursors in presenter instead of view

Esse commit está contido em:
Nathan Sobo
2015-01-23 08:19:01 -07:00
commit 06b5eba17c
5 arquivos alterados com 11 adições e 7 exclusões
+5
Ver Arquivo
@@ -514,3 +514,8 @@ describe "TextEditorPresenter", ->
destroyedCursor = editor.getCursors()[2]
destroyedCursor.destroy()
expect(presenter.state.content.cursors[destroyedCursor.id]).toBeUndefined()
it "makes cursors as wide as the ::baseCharacterWidth if they're at the end of a line", ->
editor.setCursorBufferPosition([1, Infinity])
presenter = new TextEditorPresenter(model: editor, clientHeight: 20, scrollTop: 0, lineHeight: 10, lineOverdrawMargin: 0, baseCharacterWidth: 10)
expect(stateForCursor(presenter, 0).width).toBe 10
+1 -2
Ver Arquivo
@@ -7,9 +7,8 @@ CursorComponent = React.createClass
displayName: 'CursorComponent'
render: ->
{pixelRect, defaultCharWidth} = @props
{pixelRect} = @props
{top, left, height, width} = pixelRect
width = defaultCharWidth if width is 0
WebkitTransform = "translate(#{left}px, #{top}px)"
div className: 'cursor', style: {height, width, WebkitTransform}
+1 -1
Ver Arquivo
@@ -21,7 +21,7 @@ CursorsComponent = React.createClass
div {className},
if presenter?
for key, pixelRect of presenter.state.content.cursors
CursorComponent({key, pixelRect, defaultCharWidth})
CursorComponent({key, pixelRect})
getInitialState: ->
blinkOff: false
+1 -3
Ver Arquivo
@@ -36,9 +36,7 @@ LinesComponent = React.createClass
div {className: 'lines', style},
div className: 'placeholder-text', placeholderText if placeholderText?
CursorsComponent {
presenter, cursorBlinkPeriod, cursorBlinkResumeDelay, defaultCharWidth
}
CursorsComponent {presenter, cursorBlinkPeriod, cursorBlinkResumeDelay}
HighlightsComponent {
editor, highlightDecorations, lineHeightInPixels, defaultCharWidth,
+3 -1
Ver Arquivo
@@ -99,7 +99,9 @@ class TextEditorPresenter
for cursor in @model.getCursors()
if cursor.isVisible() and startRow <= cursor.getScreenRow() < endRow
@state.content.cursors[cursor.id] = @pixelRectForScreenRange(cursor.getScreenRange())
pixelRect = @pixelRectForScreenRange(cursor.getScreenRange())
pixelRect.width = @getBaseCharacterWidth() if pixelRect.width is 0
@state.content.cursors[cursor.id] = pixelRect
visibleCursors[cursor.id] = true
for id of @state.content.cursors