diff --git a/editor/svg-editor.js b/editor/svg-editor.js index 54a02d62..e25aa926 100644 --- a/editor/svg-editor.js +++ b/editor/svg-editor.js @@ -495,7 +495,6 @@ function svg_edit_setup() { else { $('#selLayerNames').attr('disabled', 'disabled'); } - }; $('#text').focus( function(){ textBeingEntered = true; } ); @@ -1591,6 +1590,11 @@ function svg_edit_setup() { $(button).removeClass('tool_button_disabled').addClass('tool_button'); } } + + if(window.opera) { + // Fix repaint bug for Opera + $('

').hide().appendTo('body').remove(); + } }; // set up gradients to be used for the buttons diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js index 53b01a51..1948e87a 100644 --- a/editor/svgcanvas.js +++ b/editor/svgcanvas.js @@ -3028,21 +3028,26 @@ function BatchCommand(text) { } break; case "line": - keep = (element.x1.baseVal.value != element.x2.baseVal.value || - element.y1.baseVal.value != element.y2.baseVal.value); +// keep = (element.x1.baseVal.value != element.x2.baseVal.value || +// element.y1.baseVal.value != element.y2.baseVal.value); + keep = (element.getAttribute('x1') != element.getAttribute('x2') || element.getAttribute('y1') != element.getAttribute('y2')); break; case "square": case "rect": - keep = (element.width.baseVal.value && element.height.baseVal.value); + // keep = (element.width.baseVal.value && element.height.baseVal.value); + keep = (element.getAttribute('width') != 0 || element.getAttribute('height') != 0); break; case "image": - keep = (element.width.baseVal.value && element.height.baseVal.value); + // keep = (element.width.baseVal.value && element.height.baseVal.value); + keep = (element.getAttribute('width') != 0 || element.getAttribute('height') != 0); break; case "circle": - keep = (element.r.baseVal.value); + // keep = (element.r.baseVal.value); + keep = (element.getAttribute('r') != 0); break; case "ellipse": - keep = (element.rx.baseVal.value && element.ry.baseVal.value); + // keep = (element.rx.baseVal.value && element.ry.baseVal.value); + keep = (element.getAttribute('rx') != null || element.getAttribute('ry') != null); break; case "fhellipse": if ((freehand.maxx - freehand.minx) > 0 && @@ -5579,7 +5584,9 @@ function BatchCommand(text) { // returns an object that behaves like a SVGTransformList this.getTransformList = function(elem) { - if (isWebkit) { + // Opera is included here because Opera/Win/Non-EN seems to change + // transformlist float vals to use a comma rather than a period. + if (isWebkit || isOpera) { var t = svgTransformLists[elem.id]; if (!t) { svgTransformLists[elem.id] = new SVGEditTransformList(elem); @@ -5662,13 +5669,13 @@ function BatchCommand(text) { tlist.removeItem(0); } } - // find R_nc and insert it if (val != 0) { var center = transformPoint(cx,cy,transformListToTransform(tlist).matrix); var R_nc = svgroot.createSVGTransform(); R_nc.setRotate(val, center.x, center.y); tlist.insertItemBefore(R_nc,0); + opera.postError(elem.getAttribute("transform")) } else if (tlist.numberOfItems == 0) { elem.removeAttribute("transform");