From fad534ee4bf240aea02f6051a54f47386c9ec16d Mon Sep 17 00:00:00 2001 From: Moriel Schottlender Date: Wed, 21 May 2014 01:49:12 -0400 Subject: [PATCH] Adjust newNode range and fallback in MWImageModel When inserting a new node, get the proper fragment range and ask for the node from within the search loop. Also added a fallback for the case that the node wasn't found, and a caption cannot be added. Change-Id: Ic19d9b1cd2739435137f633de09a13b25a11a0cb --- modules/ve-mw/dm/models/ve.dm.MWImageModel.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/ve-mw/dm/models/ve.dm.MWImageModel.js b/modules/ve-mw/dm/models/ve.dm.MWImageModel.js index d2e102c7aa..ea6d5532db 100644 --- a/modules/ve-mw/dm/models/ve.dm.MWImageModel.js +++ b/modules/ve-mw/dm/models/ve.dm.MWImageModel.js @@ -243,7 +243,6 @@ ve.dm.MWImageModel.prototype.insertImageNode = function ( fragment ) { // Insert the new image coveredNodes = fragment - .collapseRangeToEnd() .insertContent( contentToInsert ) .getCoveredNodes(); @@ -254,6 +253,7 @@ ve.dm.MWImageModel.prototype.insertImageNode = function ( fragment ) { coveredNodes[i].node.type === 'mwInlineImage' ) { newNodeRange = coveredNodes[i].nodeOuterRange; + newNode = coveredNodes[i].node; break; } } @@ -261,10 +261,9 @@ ve.dm.MWImageModel.prototype.insertImageNode = function ( fragment ) { // Select the new node (without extras) newFragment = surfaceModel.getFragment( newNodeRange ); newFragment.select(); - newNode = newFragment.getSelectedNode(); // Check if there should be a caption - if ( newNode.getType() === 'mwBlockImage' ) { + if ( newNode && newNode.getType() === 'mwBlockImage' ) { if ( this.getCaptionDocument().data.getLength() > 4 ) { // Add contents of new caption