Final fix for Issue 119: Correctly updated selectedBBoxes after an element is removed from selection
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@619 eee81c28-f429-11dd-99c0-75d572ba1ddd
This commit is contained in:
@@ -1253,6 +1253,7 @@ function BatchCommand(text) {
|
|||||||
call("selected", selectedElements);
|
call("selected", selectedElements);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// TODO: do we need to worry about selectedBBoxes here?
|
||||||
this.addToSelection = function(elemsToAdd, showGrips) {
|
this.addToSelection = function(elemsToAdd, showGrips) {
|
||||||
if (elemsToAdd.length == 0) { return; }
|
if (elemsToAdd.length == 0) { return; }
|
||||||
// find the first null in our selectedElements array
|
// find the first null in our selectedElements array
|
||||||
@@ -1290,13 +1291,15 @@ function BatchCommand(text) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
// updates the canvas arrays selectedElements and selectedBBoxes
|
||||||
|
// TODO: could use slice here to make this faster?
|
||||||
this.removeFromSelection = function(elemsToRemove) {
|
this.removeFromSelection = function(elemsToRemove) {
|
||||||
if (selectedElements[0] == null) { return; }
|
if (selectedElements[0] == null) { return; }
|
||||||
if (elemsToRemove.length == 0) { return; }
|
if (elemsToRemove.length == 0) { return; }
|
||||||
|
|
||||||
// find every element and remove it from our array copy
|
// find every element and remove it from our array copy
|
||||||
var newSelectedItems = new Array(selectedElements.length);
|
var newSelectedItems = new Array(selectedElements.length);
|
||||||
|
var newSelectedBBoxes = new Array(selectedBBoxes.length);
|
||||||
var j = 0;
|
var j = 0;
|
||||||
var len = selectedElements.length;
|
var len = selectedElements.length;
|
||||||
for (var i = 0; i < len; ++i) {
|
for (var i = 0; i < len; ++i) {
|
||||||
@@ -1304,6 +1307,7 @@ function BatchCommand(text) {
|
|||||||
if (elem) {
|
if (elem) {
|
||||||
// keep the item
|
// keep the item
|
||||||
if (elemsToRemove.indexOf(elem) == -1) {
|
if (elemsToRemove.indexOf(elem) == -1) {
|
||||||
|
newSelectedBBoxes[j] = selectedBBoxes[i];
|
||||||
newSelectedItems[j++] = elem;
|
newSelectedItems[j++] = elem;
|
||||||
}
|
}
|
||||||
else { // remove the item and its selector
|
else { // remove the item and its selector
|
||||||
@@ -1313,6 +1317,7 @@ function BatchCommand(text) {
|
|||||||
}
|
}
|
||||||
// the copy becomes the master now
|
// the copy becomes the master now
|
||||||
selectedElements = newSelectedItems;
|
selectedElements = newSelectedItems;
|
||||||
|
selectedBBoxes = newSelectedBBoxes;
|
||||||
};
|
};
|
||||||
|
|
||||||
// in mouseDown :
|
// in mouseDown :
|
||||||
|
|||||||
Reference in New Issue
Block a user