jenkins-bot has submitted this change and it was merged.

Change subject: Clickable inline images
......................................................................


Clickable inline images

Clicking an inline image will select it, or expand the selection.

Change-Id: I505665f2dac2e52140cc049e63e3355190dcbfec
---
M modules/ve/ce/nodes/ve.ce.MWImageNode.js
M modules/ve/ve.Range.js
2 files changed, 23 insertions(+), 5 deletions(-)

Approvals:
  Inez: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/ve/ce/nodes/ve.ce.MWImageNode.js 
b/modules/ve/ce/nodes/ve.ce.MWImageNode.js
index 701a884..71d44b5 100644
--- a/modules/ve/ce/nodes/ve.ce.MWImageNode.js
+++ b/modules/ve/ce/nodes/ve.ce.MWImageNode.js
@@ -59,8 +59,20 @@
  * @param {jQuery.Event} e Click event
  */
 ve.ce.MWImageNode.prototype.onClick = function ( e ) {
-       e.preventDefault();
-       return false;
+       var range,
+           surfaceModel = this.getRoot().getSurface().getModel(),
+           selection = surfaceModel.getSelection();
+
+       range = new ve.Range(
+               this.model.getOffset(),
+               this.model.getOffset() + this.model.getOuterLength()
+       );
+
+       if ( e.shiftKey ) {
+               range = ve.Range.newCoveringRange( [ selection, range ], 
selection.from > range.from );
+       }
+
+       this.getRoot().getSurface().getModel().change( null, range );
 };
 
 /**
diff --git a/modules/ve/ve.Range.js b/modules/ve/ve.Range.js
index e6681de..b9a5f16 100644
--- a/modules/ve/ve.Range.js
+++ b/modules/ve/ve.Range.js
@@ -43,10 +43,11 @@
  *
  * @method
  * @param {Array} ranges Array of ve.Range objects (at least one)
+ * @param {boolean} backwards Return a backwards range
  * @returns {ve.Range} Range that spans all of the given ranges
  */
-ve.Range.newCoveringRange = function ( ranges ) {
-       var minStart, maxEnd, i;
+ve.Range.newCoveringRange = function ( ranges, backwards ) {
+       var minStart, maxEnd, i, range;
        if ( !ranges || ranges.length === 0 ) {
                throw new Error( 'newCoveringRange() requires at least one 
range' );
        }
@@ -60,7 +61,12 @@
                        maxEnd = ranges[i].end;
                }
        }
-       return new ve.Range( minStart, maxEnd );
+       if ( backwards ) {
+               range = new ve.Range( maxEnd, minStart );
+       } else {
+               range = new ve.Range( minStart, maxEnd );
+       }
+       return range;
 };
 
 /* Methods */

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I505665f2dac2e52140cc049e63e3355190dcbfec
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Christian <[email protected]>
Gerrit-Reviewer: Inez <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to