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