Skip to content

Commit

Permalink
fix multicursor placement on first character of right align text
Browse files Browse the repository at this point in the history
  • Loading branch information
jhchen committed May 8, 2014
1 parent 6e78d7d commit 79db895
Showing 1 changed file with 7 additions and 22 deletions.
29 changes: 7 additions & 22 deletions src/modules/multi-cursor.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -128,32 +128,17 @@ class MultiCursor extends EventEmitter2

_updateCursor: (cursor) ->
[leaf, offset] = @quill.editor.doc.findLeafAt(cursor.index, true)
guide = @container.ownerDocument.createElement('span')
if leaf?
if offset == 0
this._moveCursor(cursor, leaf.node.parentNode)
else if offset == leaf.length
if DOM.BLOCK_TAGS[leaf.node.parentNode.tagName]?
guide = @container.ownerDocument.createElement('span')
DOM.setText(guide, DOM.ZERO_WIDTH_NOBREAK_SPACE)
leaf.node.parentNode.appendChild(guide)
this._moveCursor(cursor, guide)
DOM.removeNode(guide)
else
this._moveCursor(cursor, leaf.node.parentNode, 'right')
else
[leftNode, rightNode] = Utils.splitNode(leaf.node, offset)
guide = @container.ownerDocument.createElement('span')
DOM.setText(guide, DOM.ZERO_WIDTH_NOBREAK_SPACE)
leaf.node.parentNode.insertBefore(guide, rightNode)
this._moveCursor(cursor, guide)
DOM.removeNode(guide)
DOM.normalize(leaf.node.parentNode)
[leftNode, rightNode, didSplit] = Utils.splitNode(leaf.node, offset)
DOM.setText(guide, DOM.ZERO_WIDTH_NOBREAK_SPACE)
leaf.node.parentNode.insertBefore(guide, rightNode)
else
guide = @container.ownerDocument.createElement('span')
DOM.setText(guide, DOM.NOBREAK_SPACE)
@quill.root.appendChild(guide)
this._moveCursor(cursor, guide)
DOM.removeNode(guide)
this._moveCursor(cursor, guide)
DOM.removeNode(guide)
DOM.normalize(leaf.node.parentNode) if didSplit
cursor.dirty = false


Expand Down

0 comments on commit 79db895

Please sign in to comment.