Jforrester has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/167336

Change subject: Fix broken node change detection
......................................................................

Fix broken node change detection

Currently this.selectedNode is always undefined.

Change-Id: Ia60661e22bf33bec7b863cefe35a6262c1a90c11
(cherry picked from commit c750849334ab18a448aa1597fa6b3e1f4703f32f)
---
M src/dm/ve.dm.Surface.js
1 file changed, 14 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/36/167336/1

diff --git a/src/dm/ve.dm.Surface.js b/src/dm/ve.dm.Surface.js
index 36bcd8a..185cea8 100644
--- a/src/dm/ve.dm.Surface.js
+++ b/src/dm/ve.dm.Surface.js
@@ -574,9 +574,7 @@
        var left, right, leftAnnotations, rightAnnotations, 
insertionAnnotations,
                startNode, selectedNode, range,
                branchNodes = {},
-               oldSelection = this.selection,
-               oldBranchNodes = this.branchNodes,
-               oldSelectedNode = this.selectedNode,
+               selectionChange = false,
                contextChange = false,
                linearData = this.getDocument().data;
 
@@ -591,10 +589,11 @@
                return;
        }
 
-       // Update state
-       this.selection = selection;
-       this.branchNodes = branchNodes;
-       this.selectedNode = selectedNode;
+       // this.selection needs to be updated before we call 
setInsertionAnnotations
+       if ( !this.selection.equals( selection ) ) {
+               selectionChange = true;
+               this.selection = selection;
+       }
 
        if ( selection instanceof ve.dm.LinearSelection ) {
                range = selection.getRange();
@@ -658,17 +657,20 @@
 
        // If branchNodes or selectedNode changed emit a contextChange
        if (
-               selectedNode !== oldSelectedNode ||
-               branchNodes.start !== oldBranchNodes.start ||
-               branchNodes.end !== oldBranchNodes.end
+               selectedNode !== this.selectedNode ||
+               branchNodes.start !== this.branchNodes.start ||
+               branchNodes.end !== this.branchNodes.end
        ) {
+               this.branchNodes = branchNodes;
+               this.selectedNode = selectedNode;
                contextChange = true;
        }
 
-       // Emit events
-       if ( !oldSelection.equals( this.selection ) ) {
+       // If selection changed emit a select
+       if ( selectionChange ) {
                this.emit( 'select', this.selection.clone() );
        }
+
        if ( contextChange ) {
                this.emitContextChange();
        }

-- 
To view, visit https://gerrit.wikimedia.org/r/167336
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia60661e22bf33bec7b863cefe35a6262c1a90c11
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: wmf/1.25wmf4
Gerrit-Owner: Jforrester <jforres...@wikimedia.org>
Gerrit-Reviewer: Esanders <esand...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to