Divec has uploaded a new change for review.

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

Change subject: WIP: Rerender ContentBranchNodes when the selection anchor 
leaves
......................................................................

WIP: Rerender ContentBranchNodes when the selection anchor leaves

This causes redundant Chimeras to disappear.

Change-Id: I95632cdab95f430540e2ed682a706d6cf371077f
---
M src/ce/ve.ce.Surface.js
M src/ce/ve.ce.SurfaceObserver.js
2 files changed, 34 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/94/171494/1

diff --git a/src/ce/ve.ce.Surface.js b/src/ce/ve.ce.Surface.js
index 9ac3365..d5a6b6f 100644
--- a/src/ce/ve.ce.Surface.js
+++ b/src/ce/ve.ce.Surface.js
@@ -80,6 +80,7 @@
        this.surfaceObserver.connect( this, {
                contentChange: 'onSurfaceObserverContentChange',
                rangeChange: 'onSurfaceObserverRangeChange',
+               branchNodeChange: 'onSurfaceObserverBranchNodeChange',
                slugEnter: 'onSurfaceObserverSlugEnter'
        } );
        this.model.connect( this, {
@@ -1911,6 +1912,21 @@
 };
 
 /**
+ * Handle branch node change events.
+ *
+ * @see ve.ce.SurfaceObserver#pollOnce
+ *
+ * @method
+ * @param {ve.ce.BranchNode} oldBranchNode Node from which the range anchor 
has just moved
+ * @param {ve.ce.BranchNode} newBranchNode Node into which the range anchor 
has just moved
+ */
+ve.ce.Surface.prototype.onSurfaceObserverBranchNodeChange = function ( 
oldBranchNode /*, newBranchNode */ ) {
+       if ( oldBranchNode instanceof ve.ce.ContentBranchNode ) {
+               oldBranchNode.renderContents();
+       }
+};
+
+/**
  * Handle selection change events.
  *
  * @see ve.ce.SurfaceObserver#pollOnce
diff --git a/src/ce/ve.ce.SurfaceObserver.js b/src/ce/ve.ce.SurfaceObserver.js
index f3c3a43..091f790 100644
--- a/src/ce/ve.ce.SurfaceObserver.js
+++ b/src/ce/ve.ce.SurfaceObserver.js
@@ -53,6 +53,16 @@
  */
 
 /**
+ * When #poll observes a change in the document and the new selection anchor
+ * branch node does not equal as the last known one, this event
+ * is emitted.
+ *
+ * @event branchNodeChange
+ * @param {ve.ce.BranchNode} oldBranchNode
+ * @param {ve.ce.BranchNode} newBranchNode
+ */
+
+/**
  * When #poll observes a change in the document and the new
  * selection does not equal as the last known selection, this event
  * is emitted (before the properties are updated).
@@ -251,6 +261,14 @@
                );
        }
 
+       if ( newState.branchNodeChanged ) {
+               this.emit(
+                       'branchNodeChange',
+                       ( oldState && oldState.node && oldState.node.root ? 
oldState.node : null ),
+                       newState.node
+               );
+       }
+
        if ( newState.selectionChanged && emitChanges ) {
                this.emit(
                        'rangeChange',

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I95632cdab95f430540e2ed682a706d6cf371077f
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

Reply via email to