From b302bf36c59fc778e393a91ee242fd4686647151 Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Wed, 17 Feb 2010 14:48:49 -0600 Subject: [PATCH] Fixes to foreignObject Extension (From Alex) --- .../editor/extensions/ext-foreignobject.js | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/public/svg-edit/editor/extensions/ext-foreignobject.js b/public/svg-edit/editor/extensions/ext-foreignobject.js index 6657dc40..d9692e2b 100644 --- a/public/svg-edit/editor/extensions/ext-foreignobject.js +++ b/public/svg-edit/editor/extensions/ext-foreignobject.js @@ -21,7 +21,9 @@ $(function() { htmlns = "http://www.w3.org/1999/xhtml", mathns = "http://www.w3.org/1998/Math/MathML", editingforeign = false, - svgdoc = S.svgroot.parentNode.ownerDocument; + svgdoc = S.svgroot.parentNode.ownerDocument, + started, + newFO; var properlySourceSizeTextArea = function(){ @@ -200,7 +202,8 @@ $(function() { if(svgCanvas.getMode() == "foreign") { - var newText = S.addSvgElementFromJson({ + started = true; + newFO = S.addSvgElementFromJson({ "element": "foreignObject", "attr": { "x": opts.start_x, @@ -225,23 +228,22 @@ $(function() { m.appendChild(mi); m.appendChild(mo); m.appendChild(mi2); - newText.appendChild(m); + newFO.appendChild(m); return { started: true } } }, mouseUp: function(opts) { - var e = opts.event; - - if(svgCanvas.getMode() == "foreign") { - var attrs = $(e.target).attr(["width", "height"]); - keep = (attrs.width != 0 || attrs.height != 0); - - svgCanvas.addToSelection([e.target], true); + var e = opts.event; + if(svgCanvas.getMode() == "foreign" && started) { + var attrs = $(newFO).attr(["width", "height"]); + keep = (attrs.width != 0 || attrs.height != 0); + svgCanvas.addToSelection([newFO], true); + return { keep: keep, - element: e.target + element: newFO } }