Fix 0-width cursors in presenter instead of view

This commit is contained in:
Nathan Sobo
2015-01-23 08:19:01 -07:00
parent 4ed07bb66d
commit 06b5eba17c
5 changed files with 11 additions and 7 deletions

View File

@@ -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}

View File

@@ -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

View File

@@ -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,

View File

@@ -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