Chromium Code Reviews| Index: chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js |
| diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js |
| index a2ca0be8bf2991756cd32a01749b5fd3585986a0..fdce2f65ac81c33f693364f60794aca038e288b6 100644 |
| --- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js |
| +++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js |
| @@ -166,6 +166,10 @@ cursors.Cursor.prototype = { |
| if (!adjustedNode) |
| return null; |
| + // Make no adjustments if we're within editable content. |
|
dmazzoni
2016/10/24 16:28:57
This is from a different change?
David Tseng
2016/10/24 19:10:52
Sorry; yup; re-uploaded.
|
| + if (adjustedNode.state.editable) |
| + return adjustedNode; |
| + |
| // Selections over line break nodes are broken. |
| var parent = adjustedNode.parent; |
| var grandparent = parent && parent.parent; |
| @@ -197,8 +201,13 @@ cursors.Cursor.prototype = { |
| get selectionIndex_() { |
| var adjustedIndex = this.index_; |
| - // Selecting things under a line break is currently broken. |
| - if (this.node.role == RoleType.inlineTextBox && |
| + if (!this.node) |
| + return -1; |
| + |
| + if (this.node.state.editable) { |
| + return this.index_ == cursors.NODE_INDEX ? 0 : this.index_; |
| + } else if (this.node.role == RoleType.inlineTextBox && |
| + // Selections under a line break are broken. |
| this.node.parent && this.node.parent.role != RoleType.lineBreak) { |
| if (adjustedIndex == cursors.NODE_INDEX) |
| adjustedIndex = 0; |