Improved behavior of manipulating single-child anchor elements
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1877 eee81c28-f429-11dd-99c0-75d572ba1ddd
This commit is contained in:
@@ -4586,7 +4586,7 @@
|
|||||||
Editor.ready(function() {
|
Editor.ready(function() {
|
||||||
var pre = 'data:image/svg+xml;base64,';
|
var pre = 'data:image/svg+xml;base64,';
|
||||||
var src = str.substring(pre.length);
|
var src = str.substring(pre.length);
|
||||||
loadSvgString(svgCanvas.Utils.decode64(src));
|
loadSvgString(svgedit.utilities.decode64(src));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2247,9 +2247,17 @@ var addToSelection = this.addToSelection = function(elemsToAdd, showGrips) {
|
|||||||
while (i--) {
|
while (i--) {
|
||||||
var elem = elemsToAdd[i];
|
var elem = elemsToAdd[i];
|
||||||
if (!elem || !getBBox(elem)) continue;
|
if (!elem || !getBBox(elem)) continue;
|
||||||
|
|
||||||
|
if(elem.tagName === 'a' && elem.childNodes.length === 1) {
|
||||||
|
// Make "a" element's child be the selected element
|
||||||
|
elem = elem.firstChild;
|
||||||
|
}
|
||||||
|
|
||||||
// if it's not already there, add it
|
// if it's not already there, add it
|
||||||
if (selectedElements.indexOf(elem) == -1) {
|
if (selectedElements.indexOf(elem) == -1) {
|
||||||
|
|
||||||
selectedElements[j] = elem;
|
selectedElements[j] = elem;
|
||||||
|
|
||||||
// only the first selectedBBoxes element is ever used in the codebase these days
|
// only the first selectedBBoxes element is ever used in the codebase these days
|
||||||
if (j == 0) selectedBBoxes[j] = getBBox(elem);
|
if (j == 0) selectedBBoxes[j] = getBBox(elem);
|
||||||
j++;
|
j++;
|
||||||
@@ -2260,11 +2268,6 @@ var addToSelection = this.addToSelection = function(elemsToAdd, showGrips) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(selectedElements[0] && selectedElements.length === 1 && selectedElements[0].tagName == 'a') {
|
|
||||||
// Make "a" element's child be the selected element
|
|
||||||
selectedElements[0] = selectedElements[0].firstChild;
|
|
||||||
}
|
|
||||||
|
|
||||||
call("selected", selectedElements);
|
call("selected", selectedElements);
|
||||||
|
|
||||||
if (showGrips || selectedElements.length == 1) {
|
if (showGrips || selectedElements.length == 1) {
|
||||||
@@ -2510,6 +2513,10 @@ var getMouseTarget = this.getMouseTarget = function(evt) {
|
|||||||
y = mouse_y / current_zoom,
|
y = mouse_y / current_zoom,
|
||||||
mouse_target = getMouseTarget(evt);
|
mouse_target = getMouseTarget(evt);
|
||||||
|
|
||||||
|
if(mouse_target.tagName === 'a' && mouse_target.childNodes.length === 1) {
|
||||||
|
mouse_target = mouse_target.firstChild;
|
||||||
|
}
|
||||||
|
|
||||||
// real_x/y ignores grid-snap value
|
// real_x/y ignores grid-snap value
|
||||||
var real_x = r_start_x = start_x = x;
|
var real_x = r_start_x = start_x = x;
|
||||||
var real_y = r_start_y = start_y = y;
|
var real_y = r_start_y = start_y = y;
|
||||||
@@ -2916,6 +2923,7 @@ var getMouseTarget = this.getMouseTarget = function(evt) {
|
|||||||
var elemsToRemove = [], elemsToAdd = [],
|
var elemsToRemove = [], elemsToAdd = [],
|
||||||
newList = getIntersectionList(),
|
newList = getIntersectionList(),
|
||||||
len = selectedElements.length;
|
len = selectedElements.length;
|
||||||
|
|
||||||
for (var i = 0; i < len; ++i) {
|
for (var i = 0; i < len; ++i) {
|
||||||
var ind = newList.indexOf(selectedElements[i]);
|
var ind = newList.indexOf(selectedElements[i]);
|
||||||
if (ind == -1) {
|
if (ind == -1) {
|
||||||
@@ -3277,7 +3285,7 @@ var getMouseTarget = this.getMouseTarget = function(evt) {
|
|||||||
var len = selectedElements.length;
|
var len = selectedElements.length;
|
||||||
for (var i = 0; i < len; ++i) {
|
for (var i = 0; i < len; ++i) {
|
||||||
if (selectedElements[i] == null) break;
|
if (selectedElements[i] == null) break;
|
||||||
if(selectedElements[i].tagName != 'g') {
|
if(!selectedElements[i].firstChild) {
|
||||||
// Not needed for groups (incorrectly resizes elems), possibly not needed at all?
|
// Not needed for groups (incorrectly resizes elems), possibly not needed at all?
|
||||||
selectorManager.requestSelector(selectedElements[i]).resize();
|
selectorManager.requestSelector(selectedElements[i]).resize();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user