summaryrefslogtreecommitdiffstats
path: root/src/selection.cpp
diff options
context:
space:
mode:
authorMaximilian Albert <maximilian.albert@gmail.com>2007-12-23 22:37:31 +0000
committercilix42 <cilix42@users.sourceforge.net>2007-12-23 22:37:31 +0000
commitd56821d07d8b5cbd124b3dd4e7ec74833d42de04 (patch)
treef56c32b2eca58ea13678688f546de07d0373c41e /src/selection.cpp
parentFleshing out history section a bit (diff)
downloadinkscape-d56821d07d8b5cbd124b3dd4e7ec74833d42de04.tar.gz
inkscape-d56821d07d8b5cbd124b3dd4e7ec74833d42de04.zip
Bug fix: prevent perspectives from being transformed more than once (by keeping track of selected boxes and their transformations).
(bzr r4291)
Diffstat (limited to 'src/selection.cpp')
-rw-r--r--src/selection.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/selection.cpp b/src/selection.cpp
index 68a9a2cd9..d3b667a12 100644
--- a/src/selection.cpp
+++ b/src/selection.cpp
@@ -29,6 +29,7 @@
#include "sp-shape.h"
#include "sp-path.h"
#include "sp-item-group.h"
+#include "box3d.h"
#include <sigc++/functors/mem_fun.h>
@@ -166,6 +167,11 @@ void Selection::_add(SPObject *obj) {
_objs = g_slist_prepend(_objs, obj);
+ if (SP_IS_BOX3D(obj)) {
+ // keep track of selected boxes for transformations
+ box3d_add_to_selection(SP_BOX3D(obj));
+ }
+
_release_connections[obj] = obj->connectRelease(sigc::mem_fun(*this, (void (Selection::*)(SPObject *))&Selection::remove));
_modified_connections[obj] = obj->connectModified(sigc::mem_fun(*this, &Selection::_schedule_modified));
}
@@ -200,6 +206,11 @@ void Selection::_remove(SPObject *obj) {
_release_connections[obj].disconnect();
_release_connections.erase(obj);
+ if (SP_IS_BOX3D(obj)) {
+ // keep track of selected boxes for transformations
+ box3d_remove_from_selection(SP_BOX3D(obj));
+ }
+
_objs = g_slist_remove(_objs, obj);
}