Esanders has uploaded a new change for review.

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


Change subject: Remove resize handles on surface teardown
......................................................................

Remove resize handles on surface teardown

Add teardown call to surface destruction in mw target, and
teardown listener to resizeable node.

Bug: 48530
Change-Id: I807a0f32d3d1eb490456d887f7bf867bdb896df4
---
M modules/ve/ce/ve.ce.ResizableNode.js
M modules/ve/ce/ve.ce.View.js
M modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
3 files changed, 34 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/17/64917/1

diff --git a/modules/ve/ce/ve.ce.ResizableNode.js 
b/modules/ve/ce/ve.ce.ResizableNode.js
index f15a8ad..50f7bc6 100644
--- a/modules/ve/ce/ve.ce.ResizableNode.js
+++ b/modules/ve/ce/ve.ce.ResizableNode.js
@@ -22,7 +22,11 @@
        this.$resizeHandles = $( '<div>' );
 
        // Events
-       this.connect( this, { 'focus': 'onResizableFocus', 'blur': 
'onResizableBlur' } );
+       this.connect( this, {
+               'focus': 'onResizableFocus',
+               'blur': 'onResizableBlur',
+               'setup': 'onResizableSetup'
+       } );
 
        // Initialization
        this.$resizeHandles
@@ -79,6 +83,24 @@
 };
 
 /**
+ * Handle setup event.
+ *
+ * @method
+ */
+ve.ce.ResizableNode.prototype.onResizableSetup = function () {
+       this.root.getSurface().connect( this, { 'teardown': 
'onResizableTeardown' } );
+};
+
+/**
+ * Handle teardown event.
+ *
+ * @method
+ */
+ve.ce.ResizableNode.prototype.onResizableTeardown = function () {
+       this.$resizeHandles.detach();
+};
+
+/**
  * Handle bounding box handle mousedown.
  *
  * @method
diff --git a/modules/ve/ce/ve.ce.View.js b/modules/ve/ce/ve.ce.View.js
index 0b348d6..a286112 100644
--- a/modules/ve/ce/ve.ce.View.js
+++ b/modules/ve/ce/ve.ce.View.js
@@ -53,6 +53,14 @@
  * @event live
  */
 
+/**
+ * @event setup
+ */
+
+/**
+ * @event teardown
+ */
+
 /* Static Members */
 
 /**
@@ -135,6 +143,8 @@
  * @method
  * @param {boolean} live The view has been attached to the live DOM (use false 
on detach)
  * @emits live
+ * @emits setup
+ * @emits teardown
  */
 ve.ce.View.prototype.setLive = function ( live ) {
        this.live = live;
diff --git a/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js 
b/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
index 3400ae9..381e2c1 100644
--- a/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
+++ b/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
@@ -810,6 +810,7 @@
        if ( this.surface ) {
                this.editor.destroy();
                this.editor = null;
+               this.surface.view.emit( 'teardown' );
                this.surface.destroy();
                this.surface = null;
        }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I807a0f32d3d1eb490456d887f7bf867bdb896df4
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: 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