Catrope has uploaded a new change for review.
https://gerrit.wikimedia.org/r/89207
Change subject: Separate concerns between FocusableNode and ProtectedNode
......................................................................
Separate concerns between FocusableNode and ProtectedNode
* Move select-on-mousedown from ProtectedNode to FocusableNode
* In ProtectedNode, wire phantom mousedown to FocusableNode mousedown
* Remove click handler from ImageNode, now obsolete
Change-Id: I42c126bb99c7fa1ee6742db3e6d29aa77af72f0f
---
M modules/ve/ce/nodes/ve.ce.ImageNode.js
M modules/ve/ce/ve.ce.FocusableNode.js
M modules/ve/ce/ve.ce.ProtectedNode.js
3 files changed, 32 insertions(+), 35 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/07/89207/1
diff --git a/modules/ve/ce/nodes/ve.ce.ImageNode.js
b/modules/ve/ce/nodes/ve.ce.ImageNode.js
index 0284537..3bd429a 100644
--- a/modules/ve/ce/nodes/ve.ce.ImageNode.js
+++ b/modules/ve/ce/nodes/ve.ce.ImageNode.js
@@ -31,7 +31,6 @@
this.$image = this.$;
// Events
- this.$.on( 'click', ve.bind( this.onClick, this ) );
this.model.connect( this, { 'attributeChange': 'onAttributeChange' } );
// Initialization
@@ -80,26 +79,6 @@
this.$image.css( key, to );
}
}
-};
-
-/**
- * Handle the mouse click.
- *
- * @method
- * @param {jQuery.Event} e Click event
- */
-ve.ce.ImageNode.prototype.onClick = function ( e ) {
- var surfaceModel = this.getRoot().getSurface().getModel(),
- selectionRange = surfaceModel.getSelection(),
- nodeRange = this.model.getOuterRange();
-
- surfaceModel.getFragment(
- e.shiftKey ?
- ve.Range.newCoveringRange(
- [ selectionRange, nodeRange ],
selectionRange.from > nodeRange.from
- ) :
- nodeRange
- ).select();
};
/* Registration */
diff --git a/modules/ve/ce/ve.ce.FocusableNode.js
b/modules/ve/ce/ve.ce.FocusableNode.js
index 96d0716..66bf526 100644
--- a/modules/ve/ce/ve.ce.FocusableNode.js
+++ b/modules/ve/ce/ve.ce.FocusableNode.js
@@ -71,8 +71,10 @@
if ( this.live ) {
surfaceModel.connect( this, { 'history': 'onFocusableHistory' }
);
+ this.$focusable.on( 'mousedown.ve-ce-focusableNode', ve.bind(
this.onFocusableMouseDown, this ) );
} else {
surfaceModel.disconnect( this, { 'history':
'onFocusableHistory' } );
+ this.$focusable.off( '.ve-ce-focusableNode' );
}
};
@@ -112,6 +114,29 @@
};
/**
+ * On mouse down, select the node.
+ *
+ * @method
+ * @param {jQuery.Event} e Mouse down event
+ */
+ve.ce.FocusableNode.prototype.onFocusableMouseDown = function ( e ) {
+ var surfaceModel = this.getRoot().getSurface().getModel(),
+ selectionRange = surfaceModel.getSelection(),
+ nodeRange = this.model.getOuterRange();
+
+ surfaceModel.getFragment(
+ e.shiftKey ?
+ ve.Range.newCoveringRange(
+ [ selectionRange, nodeRange ],
selectionRange.from > nodeRange.from
+ ) :
+ nodeRange
+ ).select();
+
+ e.preventDefault();
+};
+
+
+/**
* Check if node is focused.
*
* @method
diff --git a/modules/ve/ce/ve.ce.ProtectedNode.js
b/modules/ve/ce/ve.ce.ProtectedNode.js
index 30313b3..0310483 100644
--- a/modules/ve/ce/ve.ce.ProtectedNode.js
+++ b/modules/ve/ce/ve.ce.ProtectedNode.js
@@ -139,25 +139,18 @@
};
/**
- * Handle phantom mouse down events.
+ * Prevent mousedown. If FocusableNode is mixed in, relay the mousedown event
to FocusableNode's
+ * onMouseDown handler.
*
* @method
* @param {jQuery.Event} e Mouse down event
*/
ve.ce.ProtectedNode.prototype.onPhantomMouseDown = function ( e ) {
- var surfaceModel = this.getRoot().getSurface().getModel(),
- selectionRange = surfaceModel.getSelection(),
- nodeRange = this.model.getOuterRange();
-
- surfaceModel.getFragment(
- e.shiftKey ?
- ve.Range.newCoveringRange(
- [ selectionRange, nodeRange ],
selectionRange.from > nodeRange.from
- ) :
- nodeRange
- ).select();
-
- e.preventDefault();
+ if ( ve.isMixedIn( this, ve.ce.FocusableNode ) ) {
+ return this.onFocusableMouseDown( e );
+ } else {
+ e.preventDefault();
+ }
};
/**
--
To view, visit https://gerrit.wikimedia.org/r/89207
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I42c126bb99c7fa1ee6742db3e6d29aa77af72f0f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits