summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLiam P. White <inkscapebronyat-signgmaildotcom>2014-05-11 18:23:10 +0000
committerLiam P. White <inkscapebronyat-signgmaildotcom>2014-05-11 18:23:10 +0000
commit1f1932ae4592c8f316e3a68ac86874bf87f321c4 (patch)
tree704707febbd39ec2f66305679ced762b33f898af /src
parentAdd selection sets (diff)
downloadinkscape-1f1932ae4592c8f316e3a68ac86874bf87f321c4.tar.gz
inkscape-1f1932ae4592c8f316e3a68ac86874bf87f321c4.zip
Stabilize the selection set system a bit
(bzr r13090.1.76)
Diffstat (limited to 'src')
-rw-r--r--src/sp-tag-use.cpp1
-rw-r--r--src/ui/dialog/tags.cpp10
2 files changed, 8 insertions, 3 deletions
diff --git a/src/sp-tag-use.cpp b/src/sp-tag-use.cpp
index ffcfcee3e..5851598f2 100644
--- a/src/sp-tag-use.cpp
+++ b/src/sp-tag-use.cpp
@@ -175,6 +175,7 @@ SPTagUse::href_changed(SPObject */*old_ref*/, SPObject */*ref*/)
SPObject* child_ = SPFactory::instance().createObject(typeString);
if (child_) {
+ child = child_;
attach(child_, lastChild());
sp_object_unref(child_, 0);
child_->invoke_build(this->document, childrepr, TRUE);
diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp
index 7fdd2e906..14ad5b8cc 100644
--- a/src/ui/dialog/tags.cpp
+++ b/src/ui/dialog/tags.cpp
@@ -280,7 +280,8 @@ bool TagsPanel::_executeAction()
for (std::vector<SPObject *>::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) {
SPObject * obj = *iter;
if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) {
- obj->parent->getRepr()->removeChild(obj->getRepr());
+ //obj->parent->getRepr()->removeChild(obj->getRepr());
+ obj->deleteObject(true, true);
}
}
DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from selection set"));
@@ -576,7 +577,8 @@ bool TagsPanel::_handleKeyEvent(GdkEventKey *event)
for (std::vector<SPObject *>::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) {
SPObject * obj = *iter;
if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) {
- obj->parent->getRepr()->removeChild(obj->getRepr());
+ //obj->parent->getRepr()->removeChild(obj->getRepr());
+ obj->deleteObject(true, true);
}
}
DocumentUndo::done(_document, SP_VERB_DIALOG_TAGS, _("Remove from selection set"));
@@ -680,12 +682,14 @@ bool TagsPanel::_handleButtonEvent(GdkEventButton* event)
}
} else {
std::vector<SPObject *> todelete;
+ // FIXME unnecessary use of XML tree
_tree.get_selection()->selected_foreach_iter(sigc::bind<std::vector<SPObject *>*>(sigc::mem_fun(*this, &TagsPanel::_checkForDeleted), &todelete));
if (!todelete.empty()) {
for (std::vector<SPObject *>::iterator iter = todelete.begin(); iter != todelete.end(); ++iter) {
SPObject * tobj = *iter;
if (tobj && tobj->parent && tobj->getRepr() && tobj->parent->getRepr()) {
- tobj->parent->getRepr()->removeChild(tobj->getRepr());
+ //tobj->parent->getRepr()->removeChild(tobj->getRepr());
+ tobj->deleteObject(true, true);
}
}
} else if (obj && obj->parent && obj->getRepr() && obj->parent->getRepr()) {