From 6d8ab5888a6e01e20c9067b7e855973998452f95 Mon Sep 17 00:00:00 2001 From: Jeff Schiller Date: Tue, 30 Jun 2009 16:12:08 +0000 Subject: [PATCH] Clear up some bugginess with the rubber-band box in single-select mode git-svn-id: http://svg-edit.googlecode.com/svn/trunk@237 eee81c28-f429-11dd-99c0-75d572ba1ddd --- editor/svgcanvas.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js index 98f0fc9e..f595c5f7 100644 --- a/editor/svgcanvas.js +++ b/editor/svgcanvas.js @@ -586,22 +586,25 @@ function SvgCanvas(c) // call this function with null to clear the selected element var selectElement = function(newSelected, multi) { + // if the element to be selected is actually the rubber-band box + // then simply return (do not select it) if (newSelected == selectorManager.getRubberBandBox()) { return; } + // if we are not in multi-mode and newSelected is already selected + // then simply return + // otherwise clear all previous selectors var multi = multi || false; - for (var i = 0; i < selectedElements.length; ++i) { - if (selectedElements[i] == newSelected) { + if (!multi) { + var selected = selectedElements[0]; + if (selectedElements[0] == newSelected) { return; } - } - - // this element is not in the selectedElements array - // if we're not in multi-mode, then clear the previous selector - var selected = selectedElements[0]; - if (!multi && selected) { - selectorManager.releaseSelector(selected); + + for (var i = 0; i < selectedElements.length; ++i) { + selectorManager.releaseSelector(selectedElements[i]); + } } selectedElements[0] = newSelected;