Divec has uploaded a new change for review.
https://gerrit.wikimedia.org/r/179530
Change subject: Readonly selection handling
......................................................................
Readonly selection handling
Create a collapsed selection directly in handleLinearUpOrDownArrowKey, instead
of inserting, selecting and removing a $cursorHolder span. The original purpose
of the insertion technique seems to have been to give a non-collapsed selection
for the native action to work on, then delete the superfluous content
afterwards. However, since Ifd5000fc5e667cb9fd6db0e97cf8a03b4da45553 we have
been deleting the $cursorHolder *before* the native action, so the native
action acts on a collapsed selection in any case.
Change-Id: If507cc2bcc363c1d637409dfa191942c967a7c59
---
M src/ce/ve.ce.Surface.js
1 file changed, 5 insertions(+), 19 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor
refs/changes/30/179530/1
diff --git a/src/ce/ve.ce.Surface.js b/src/ce/ve.ce.Surface.js
index 9bad070..3ae489c 100644
--- a/src/ce/ve.ce.Surface.js
+++ b/src/ce/ve.ce.Surface.js
@@ -2527,7 +2527,7 @@
* @param {jQuery.Event} e Up or down key down event
*/
ve.ce.Surface.prototype.handleLinearUpOrDownArrowKey = function ( e ) {
- var nativeRange, slug, $cursorHolder, endNode, endOffset,
+ var nativeRange, slug, endNode, endOffset,
range = this.model.getSelection().getRange(),
tableEditingRange = this.getActiveTableNode() ?
this.getActiveTableNode().getEditingRange() : null,
direction = e.keyCode === OO.ui.Keys.DOWN ? 1 : -1,
@@ -2569,30 +2569,16 @@
endNode = this.nativeSelection.focusNode;
endOffset = this.nativeSelection.focusOffset;
}
- $cursorHolder = this.$( '<span
class="ve-ce-surface-cursorHolder"> </span>' ).hide();
- if ( endNode.nodeType === Node.TEXT_NODE ) {
- endNode.splitText( endOffset );
- }
- endNode.parentNode.insertBefore(
- $cursorHolder[0],
- endNode.nextSibling
- );
}
}
- if ( $cursorHolder || slug ) {
+ if ( endNode || slug ) {
nativeRange = this.getElementDocument().createRange();
- nativeRange.selectNode( $cursorHolder ? $cursorHolder[0] : slug
);
+ nativeRange.setStart( endNode, endOffset );
+ nativeRange.setEnd( endNode, endOffset );
this.nativeSelection.removeAllRanges();
this.nativeSelection.addRange( nativeRange );
}
- if ( $cursorHolder ) {
- $cursorHolder.remove();
- this.surfaceObserver.clear();
- }
- // If we did text node splitting, try and patch things up
- if ( endNode && endNode.nodeType === Node.TEXT_NODE ) {
- ve.normalizeNode( endNode.parentNode );
- }
+
setTimeout( function () {
var viewNode, newRange;
// Chrome bug lets you cursor into a multi-line
contentEditable=false with up/down...
--
To view, visit https://gerrit.wikimedia.org/r/179530
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If507cc2bcc363c1d637409dfa191942c967a7c59
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Divec <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits