jenkins-bot has submitted this change and it was merged.

Change subject: Fixup selection after ContentBranchNode rerender
......................................................................


Fixup selection after ContentBranchNode rerender

ContentBranchNode renderContents changes the browser selection, so we
need to change it back.

ve.ce.ContentBranchNode.js
* When rerendering, set a flag on ve.ce.Surface

ve.ce.Surface.js
* On model documentUpdate, reapply selection if flag set

Change-Id: Ib8a168e6ec674b9d8021423f21f7acca75c2fd7c
---
M modules/ve/ce/ve.ce.ContentBranchNode.js
M modules/ve/ce/ve.ce.Surface.js
2 files changed, 15 insertions(+), 0 deletions(-)

Approvals:
  Divec: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/ve/ce/ve.ce.ContentBranchNode.js 
b/modules/ve/ce/ve.ce.ContentBranchNode.js
index fd2fb01..7516836 100644
--- a/modules/ve/ce/ve.ce.ContentBranchNode.js
+++ b/modules/ve/ce/ve.ce.ContentBranchNode.js
@@ -165,6 +165,10 @@
                return;
        }
 
+       if ( this.root instanceof ve.ce.DocumentNode ) {
+               this.root.getSurface().setContentBranchNodeChanged( true );
+       }
+
        // Detach all child nodes from this.$
        for ( i = 0, len = this.$.length; i < len; i++ ) {
                node = this.$[i];
diff --git a/modules/ve/ce/ve.ce.Surface.js b/modules/ve/ce/ve.ce.Surface.js
index cc880b3..2b5b7c7 100644
--- a/modules/ve/ce/ve.ce.Surface.js
+++ b/modules/ve/ce/ve.ce.Surface.js
@@ -45,6 +45,7 @@
        this.dragging = false;
        this.relocating = false;
        this.selecting = false;
+       this.contentBranchNodeChanged = false;
        this.$phantoms = this.$$( '<div>' );
        this.$highlights = this.$$( '<div>' );
        this.$pasteTarget = this.$$( '<div>' );
@@ -938,6 +939,8 @@
                next = null,
                previous = this.focusedNode;
 
+       this.contentBranchNodeChanged = false;
+
        // Detect when only a single inline element is selected
        if ( !selection.isCollapsed() ) {
                start = this.documentView.getDocumentNode().getNodeFromOffset( 
selection.start + 1 );
@@ -993,6 +996,10 @@
  * @param {ve.dm.Transaction} transaction Transaction that was processed
  */
 ve.ce.Surface.prototype.onModelDocumentUpdate = function () {
+       if ( this.contentBranchNodeChanged ) {
+               // Update the selection state from model
+               this.onModelSelect( this.surface.getModel().selection );
+       }
        // Update the state of the SurfaceObserver
        this.surfaceObserver.pollOnceNoEmit();
 };
@@ -1908,3 +1915,7 @@
                this.newModelSelection = null;
        }
 };
+
+ve.ce.Surface.prototype.setContentBranchNodeChanged = function ( isChanged ) {
+       this.contentBranchNodeChanged = isChanged;
+};

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib8a168e6ec674b9d8021423f21f7acca75c2fd7c
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Divec <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Divec <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: Trevor Parscal <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to