Most of the work for Issue 119: shift-click can be used. But still an intermittent resizing problem when drag-moving
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@608 eee81c28-f429-11dd-99c0-75d572ba1dddmaster
parent
eb44c62740
commit
4eb30032d0
|
@ -607,6 +607,7 @@ function BatchCommand(text) {
|
|||
var selectedElements = new Array(1);
|
||||
// this holds the selected's bbox
|
||||
var selectedBBoxes = new Array(1);
|
||||
var justSelected = null;
|
||||
// this object manages selectors for us
|
||||
var selectorManager = new SelectorManager();
|
||||
var rubberBox = null;
|
||||
|
@ -1238,7 +1239,10 @@ function BatchCommand(text) {
|
|||
if (selectedElements.indexOf(elem) == -1) {
|
||||
selectedElements[j] = elem;
|
||||
selectedBBoxes[j++] = this.getBBox(elem);
|
||||
selectorManager.requestSelector(elem);
|
||||
var sel = selectorManager.requestSelector(elem);
|
||||
if (selectedElements.length > 1) {
|
||||
sel.showGrips(false);
|
||||
}
|
||||
call("selected", selectedElements);
|
||||
}
|
||||
}
|
||||
|
@ -1246,6 +1250,9 @@ function BatchCommand(text) {
|
|||
if(showGrips) {
|
||||
selectorManager.requestSelector(selectedElements[0]).showGrips(true);
|
||||
}
|
||||
else if (selectedElements.length > 1) {
|
||||
selectorManager.requestSelector(selectedElements[0]).showGrips(false);
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
|
@ -1308,8 +1315,13 @@ function BatchCommand(text) {
|
|||
if (nodeName != "div" && nodeName != "svg") {
|
||||
// if this element is not yet selected, clear selection and select it
|
||||
if (selectedElements.indexOf(t) == -1) {
|
||||
// only clear selection if shift is not pressed (otherwise, add
|
||||
// element to selection)
|
||||
if (!evt.shiftKey) {
|
||||
canvas.clearSelection();
|
||||
}
|
||||
canvas.addToSelection([t]);
|
||||
justSelected = t;
|
||||
current_poly = null;
|
||||
}
|
||||
// else if it's a poly, go into polyedit mode in mouseup
|
||||
|
@ -1537,8 +1549,7 @@ function BatchCommand(text) {
|
|||
var y = evt.pageY - container.parentNode.offsetTop + container.parentNode.scrollTop;
|
||||
var shape = svgdoc.getElementById(getId());
|
||||
|
||||
evt.preventDefault()
|
||||
|
||||
evt.preventDefault();
|
||||
|
||||
switch (current_mode)
|
||||
{
|
||||
|
@ -1923,6 +1934,8 @@ function BatchCommand(text) {
|
|||
// this is done in when we recalculate the selected dimensions()
|
||||
var mouseUp = function(evt)
|
||||
{
|
||||
var tempJustSelected = justSelected;
|
||||
justSelected = null;
|
||||
if (!started) return;
|
||||
|
||||
var x = evt.pageX - container.parentNode.offsetLeft + container.parentNode.scrollLeft;
|
||||
|
@ -1971,9 +1984,9 @@ function BatchCommand(text) {
|
|||
}
|
||||
// no change in position/size, so maybe we should move to polyedit
|
||||
else {
|
||||
var t = evt.target;
|
||||
// TODO: this causes a poly that was just going to be selected to go straight to polyedit
|
||||
if (selectedElements[0].nodeName == "path" && selectedElements[1] == null) {
|
||||
var t = evt.target;
|
||||
if (current_poly == t) {
|
||||
current_mode = "polyedit";
|
||||
|
||||
|
@ -2012,8 +2025,12 @@ function BatchCommand(text) {
|
|||
else {
|
||||
current_poly = t;
|
||||
}
|
||||
} // no change in mouse position
|
||||
} // if it was a path
|
||||
// else, if it was selected and this is a shift-click, remove it from selection
|
||||
else if (evt.shiftKey && tempJustSelected != t) {
|
||||
canvas.removeFromSelection([t]);
|
||||
}
|
||||
} // no change in mouse position
|
||||
}
|
||||
// we return immediately from select so that the obj_num is not incremented
|
||||
return;
|
||||
|
@ -3003,6 +3020,7 @@ function BatchCommand(text) {
|
|||
var i = selectedElements.length;
|
||||
while (i--) {
|
||||
var elem = selectedElements[i];
|
||||
if (elem == null) continue;
|
||||
var oldNextSibling = elem.nextSibling;
|
||||
var oldParent = elem.parentNode;
|
||||
g.appendChild(elem);
|
||||
|
|
Loading…
Reference in New Issue