jenkins-bot has submitted this change and it was merged.
Change subject: Handle backspace correctly when in a slugs
......................................................................
Handle backspace correctly when in a slugs
We need to detect if the endNode we are trying to move is
inside our original delete selection, and not perform the
move if it is.
Bug: 50076
Change-Id: Ib89706c8717d13829bf89e44c4fb39e16a00821e
---
M modules/ve/ce/ve.ce.Surface.js
1 file changed, 25 insertions(+), 20 deletions(-)
Approvals:
Catrope: Looks good to me, approved
jenkins-bot: Verified
diff --git a/modules/ve/ce/ve.ce.Surface.js b/modules/ve/ce/ve.ce.Surface.js
index 2d0778f..68519f3 100644
--- a/modules/ve/ce/ve.ce.Surface.js
+++ b/modules/ve/ce/ve.ce.Surface.js
@@ -1261,26 +1261,31 @@
// merging that takes remaing data from "endNode" and inserts
it at the end of "startNode",
// "endNode" or recrusivly its parent (if have only one child)
gets removed.
endNode = this.documentView.getNodeFromOffset(
rangeToRemove.end, false );
- endNodeData = this.documentView.model.getData(
endNode.model.getRange() );
- nodeToDelete = endNode;
- nodeToDelete.traverseUpstream( function ( node ) {
- if ( node.getParent().children.length === 1 ) {
- nodeToDelete = node.getParent();
- return true;
- } else {
- return false;
- }
- } );
- this.model.change(
- [
- ve.dm.Transaction.newFromRemoval(
- this.documentView.model,
nodeToDelete.getModel().getOuterRange()
- ),
- ve.dm.Transaction.newFromInsertion(
- this.documentView.model,
rangeToRemove.start, endNodeData
- )
- ]
- );
+
+ // If "endNode" is within our rangeToRemove, then we shouldn't
delete it
+ if ( endNode.getModel().getRange().start >= rangeToRemove.end )
{
+ endNodeData = this.documentView.model.getData(
endNode.getModel().getRange() );
+ nodeToDelete = endNode;
+ nodeToDelete.traverseUpstream( function ( node ) {
+ var parent = node.getParent();
+ if ( parent.children.length === 1 ) {
+ nodeToDelete = parent;
+ return true;
+ } else {
+ return false;
+ }
+ } );
+ this.model.change(
+ [
+ ve.dm.Transaction.newFromRemoval(
+ this.documentView.model,
nodeToDelete.getModel().getOuterRange()
+ ),
+ ve.dm.Transaction.newFromInsertion(
+ this.documentView.model,
rangeToRemove.start, endNodeData
+ )
+ ]
+ );
+ }
}
this.model.change( null, new ve.Range( rangeToRemove.start ) );
this.surfaceObserver.clear();
--
To view, visit https://gerrit.wikimedia.org/r/73952
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib89706c8717d13829bf89e44c4fb39e16a00821e
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits