aboutsummaryrefslogtreecommitdiff
path: root/js/clipboard/internal-ops/elements-clipboard-agent.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/clipboard/internal-ops/elements-clipboard-agent.js')
-rw-r--r--js/clipboard/internal-ops/elements-clipboard-agent.js20
1 files changed, 17 insertions, 3 deletions
diff --git a/js/clipboard/internal-ops/elements-clipboard-agent.js b/js/clipboard/internal-ops/elements-clipboard-agent.js
index 14984593..4f6e8195 100644
--- a/js/clipboard/internal-ops/elements-clipboard-agent.js
+++ b/js/clipboard/internal-ops/elements-clipboard-agent.js
@@ -31,8 +31,8 @@ POSSIBILITY OF SUCH DAMAGE.
31//////////////////////////////////////////////////////////////////////// 31////////////////////////////////////////////////////////////////////////
32// 32//
33 33
34var Montage = require("montage/core/core").Montage, 34var Montage = require("montage/core/core").Montage,
35 Component = require("montage/ui/component").Component, 35 Component = require("montage/ui/component").Component,
36 ClipboardUtil = require("js/clipboard/util").ClipboardUtil, 36 ClipboardUtil = require("js/clipboard/util").ClipboardUtil,
37 World = require("js/lib/drawing/world").World; 37 World = require("js/lib/drawing/world").World;
38 38
@@ -267,7 +267,10 @@ var ElementsClipboardAgent = exports.ElementsClipboardAgent = Montage.create(Com
267 styles = null; 267 styles = null;
268 } 268 }
269 269
270 var addDelegate = this.application.ninja.elementMediator.addDelegate;
271 this.application.ninja.elementMediator.addDelegate = null;
270 this.application.ninja.elementMediator.addElements(canvas, styles, false); 272 this.application.ninja.elementMediator.addElements(canvas, styles, false);
273 this.application.ninja.elementMediator.addDelegate = addDelegate;
271 274
272 worldData = sourceCanvas.elementModel.shapeModel ? sourceCanvas.elementModel.shapeModel.GLWorld.exportJSON(): null; 275 worldData = sourceCanvas.elementModel.shapeModel ? sourceCanvas.elementModel.shapeModel.GLWorld.exportJSON(): null;
273 if(worldData) 276 if(worldData)
@@ -349,7 +352,7 @@ var ElementsClipboardAgent = exports.ElementsClipboardAgent = Montage.create(Com
349 352
350 pastePositioned:{ 353 pastePositioned:{
351 value: function(element, styles, fromCopy){// for now can wok for both in-place and centered paste 354 value: function(element, styles, fromCopy){// for now can wok for both in-place and centered paste
352 var modObject = [], x,y, newX, newY, counter; 355 var modObject = [], x,y, newX, newY, counter, self = this;
353 356
354 if((typeof fromCopy === "undefined") || (fromCopy && fromCopy === true)){ 357 if((typeof fromCopy === "undefined") || (fromCopy && fromCopy === true)){
355 counter = this.pasteCounter; 358 counter = this.pasteCounter;
@@ -362,11 +365,22 @@ var ElementsClipboardAgent = exports.ElementsClipboardAgent = Montage.create(Com
362 newX = styles ? ("" + (styles.left + (25 * counter)) + "px") : "100px"; 365 newX = styles ? ("" + (styles.left + (25 * counter)) + "px") : "100px";
363 newY = styles ? ("" + (styles.top + (25 * counter)) + "px") : "100px"; 366 newY = styles ? ("" + (styles.top + (25 * counter)) + "px") : "100px";
364 367
368 var addDelegate = this.application.ninja.elementMediator.addDelegate;
369 this.application.ninja.elementMediator.addDelegate = null;
365 if(!styles || (styles && !styles.position)){ 370 if(!styles || (styles && !styles.position)){
366 this.application.ninja.elementMediator.addElements(element, null, false); 371 this.application.ninja.elementMediator.addElements(element, null, false);
367 }else if(styles && (styles.position === "absolute")){ 372 }else if(styles && (styles.position === "absolute")){
373 if((element.tagName === "IMG") || (element.getAttribute("type") === "image/svg+xml")){
374 element.onload = function(){
375 element.onload = null;
376 //refresh selection
377 self.application.ninja.stage.needsDraw = true;
378 }
379 }
380
368 this.application.ninja.elementMediator.addElements(element, {"top" : newY, "left" : newX}, false);//displace 381 this.application.ninja.elementMediator.addElements(element, {"top" : newY, "left" : newX}, false);//displace
369 } 382 }
383 this.application.ninja.elementMediator.addDelegate = addDelegate;
370 } 384 }
371 }, 385 },
372 386