diff options
Diffstat (limited to 'js/clipboard/internal-ops')
4 files changed, 23 insertions, 9 deletions
diff --git a/js/clipboard/internal-ops/component-clipboard-agent.js b/js/clipboard/internal-ops/component-clipboard-agent.js index 3dc41532..31b53474 100644 --- a/js/clipboard/internal-ops/component-clipboard-agent.js +++ b/js/clipboard/internal-ops/component-clipboard-agent.js | |||
@@ -31,8 +31,8 @@ POSSIBILITY OF SUCH DAMAGE. | |||
31 | //////////////////////////////////////////////////////////////////////// | 31 | //////////////////////////////////////////////////////////////////////// |
32 | // | 32 | // |
33 | 33 | ||
34 | var Montage = require("montage/core/core").Montage, | 34 | var Montage = require("montage/core/core").Montage, |
35 | Component = require("montage/ui/component").Component; | 35 | Component = require("montage/ui/component").Component; |
36 | 36 | ||
37 | var ComponentsClipboardAgent = exports.ComponentsClipboardAgent = Montage.create(Component, { | 37 | var ComponentsClipboardAgent = exports.ComponentsClipboardAgent = Montage.create(Component, { |
38 | 38 | ||
diff --git a/js/clipboard/internal-ops/css-clipboard-agent.js b/js/clipboard/internal-ops/css-clipboard-agent.js index 42dd09c9..e93077a8 100644 --- a/js/clipboard/internal-ops/css-clipboard-agent.js +++ b/js/clipboard/internal-ops/css-clipboard-agent.js | |||
@@ -31,8 +31,8 @@ POSSIBILITY OF SUCH DAMAGE. | |||
31 | //////////////////////////////////////////////////////////////////////// | 31 | //////////////////////////////////////////////////////////////////////// |
32 | // | 32 | // |
33 | 33 | ||
34 | var Montage = require("montage/core/core").Montage, | 34 | var Montage = require("montage/core/core").Montage, |
35 | Component = require("montage/ui/component").Component; | 35 | Component = require("montage/ui/component").Component; |
36 | 36 | ||
37 | var CssClipboardAgent = exports.CssClipboardAgent = Montage.create(Component, { | 37 | var CssClipboardAgent = exports.CssClipboardAgent = Montage.create(Component, { |
38 | 38 | ||
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 | ||
34 | var Montage = require("montage/core/core").Montage, | 34 | var 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 | ||
diff --git a/js/clipboard/internal-ops/timeline-clipboard-agent.js b/js/clipboard/internal-ops/timeline-clipboard-agent.js index d8ef7ae9..4e5cfe30 100644 --- a/js/clipboard/internal-ops/timeline-clipboard-agent.js +++ b/js/clipboard/internal-ops/timeline-clipboard-agent.js | |||
@@ -31,8 +31,8 @@ POSSIBILITY OF SUCH DAMAGE. | |||
31 | //////////////////////////////////////////////////////////////////////// | 31 | //////////////////////////////////////////////////////////////////////// |
32 | // | 32 | // |
33 | 33 | ||
34 | var Montage = require("montage/core/core").Montage, | 34 | var Montage = require("montage/core/core").Montage, |
35 | Component = require("montage/ui/component").Component; | 35 | Component = require("montage/ui/component").Component; |
36 | 36 | ||
37 | var TimelineClipboardAgent = exports.TimelineClipboardAgent = Montage.create(Component, { | 37 | var TimelineClipboardAgent = exports.TimelineClipboardAgent = Montage.create(Component, { |
38 | 38 | ||