Code

angled guidelines: create angled line when dragging from edge of rulers
[inkscape.git] / src / selection.cpp
index 68a9a2cd92e719ebd151cbbcb78725a113452743..d3b667a128a0e76cdd5650ed276898bc41af71ba 100644 (file)
@@ -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);
 }