| 559 | |
| 560 | // Make sure the expected BBox is returned if the element is a group |
| 561 | var getCheckedBBox = function(elem) { |
| 562 | |
| 563 | try { |
| 564 | // TODO: Fix issue with rotated groups. Currently they work |
| 565 | // fine in FF, but not in other browsers (same problem mentioned |
| 566 | // in Issue 339 comment #2). |
| 567 | |
| 568 | var bb = svgedit.utilities.getBBox(elem); |
| 569 | |
| 570 | var angle = svgedit.utilities.getRotationAngle(elem); |
| 571 | if ((angle && angle % 90) || |
| 572 | svgedit.math.hasMatrixTransform(svgedit.transformlist.getTransformList(elem))) { |
| 573 | |
| 574 | // Get the BBox from the raw path for these elements |
| 575 | var elemNames = ['ellipse','path','line','polyline','polygon']; |
| 576 | if(elemNames.indexOf(elem.tagName) >= 0) { |
| 577 | bb = canvas.convertToPath(elem, true); |
| 578 | } else if(elem.tagName == 'rect') { |
| 579 | // Look for radius |
| 580 | var rx = elem.getAttribute('rx'); |
| 581 | var ry = elem.getAttribute('ry'); |
| 582 | if(rx || ry) { |
| 583 | bb = good_bb = canvas.convertToPath(elem, true); |
| 584 | } |
| 585 | } |
| 586 | } |
| 587 | return bb; |
| 588 | } catch(e) { |
| 589 | console.log(elem, e); |
| 590 | } |
| 591 | }; |
| 592 | |
| 593 | var full_bb; |
| 594 | $.each(elems, function() { |