Esanders has uploaded a new change for review.
https://gerrit.wikimedia.org/r/204509
Change subject: Trigger packed galleries resizing logic to match read mode
......................................................................
Trigger packed galleries resizing logic to match read mode
Logically depends on I7b7413fe4 in MW core.
Change-Id: I282175d458a224363156700308fbef7bb1d0a6b8
---
M modules/ve-mw/ce/nodes/ve.ce.MWGalleryNode.js
1 file changed, 46 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/09/204509/1
diff --git a/modules/ve-mw/ce/nodes/ve.ce.MWGalleryNode.js
b/modules/ve-mw/ce/nodes/ve.ce.MWGalleryNode.js
index 9dab088..2ad9928 100644
--- a/modules/ve-mw/ce/nodes/ve.ce.MWGalleryNode.js
+++ b/modules/ve-mw/ce/nodes/ve.ce.MWGalleryNode.js
@@ -18,6 +18,9 @@
ve.ce.MWGalleryNode = function VeCeMWGalleryNode() {
// Parent constructor
ve.ce.MWGalleryNode.super.apply( this, arguments );
+
+ this.$window = $( this.getElementWindow() );
+ this.onWindowResizeHandler = this.onWindowResize.bind( this );
};
/* Inheritance */
@@ -42,6 +45,49 @@
return $gallery.length ? $gallery.children() : this.$element;
};
+/**
+ * @inheritdoc
+ */
+ve.ce.MWGalleryNode.prototype.onSetup = function () {
+ // Parent method
+ ve.ce.MWGalleryNode.super.prototype.onSetup.call( this );
+
+ if ( !this.root ) {
+ return;
+ }
+
+ // Events
+ this.$window.on( 'resize', this.onWindowResizeHandler );
+
+ var node = this;
+ mw.loader.using( 'mediawiki.page.gallery' ).then( function () {
+ mw.hook( 'wikipage.content' ).fire( node.$element );
+ } );
+};
+
+/**
+ * @inheritdoc
+ */
+ve.ce.MWGalleryNode.prototype.onTeardown = function () {
+ // Parent method
+ ve.ce.MWGalleryNode.super.prototype.onTeardown.call( this );
+
+ // Events
+ this.$window.off( 'resize', this.onWindowResizeHandler );
+};
+
+/**
+ * Handle window resize events
+ *
+ * The packed gallery plugin resizes the gallery 300ms after a window resize,
but
+ * emits no events, so wait 350ms and manually trigger rerender handlers.
+ *
+ * TODO: Have core emit such an event
+ */
+ve.ce.MWGalleryNode.prototype.onWindowResize = ve.debounce( function () {
+ this.onFocusableRerender();
+}, 350 );
+
/* Registration */
ve.ce.nodeFactory.register( ve.ce.MWGalleryNode );
--
To view, visit https://gerrit.wikimedia.org/r/204509
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I282175d458a224363156700308fbef7bb1d0a6b8
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits