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

Reply via email to