From 2f08f0e28cab72ce97c89cc34492cc358b0d3f3d Mon Sep 17 00:00:00 2001 From: bulia byak Date: Tue, 10 Mar 2009 03:16:45 +0000 Subject: fix 317365: when moving in/out of defs, an object gets a new SPObject while keeping the same repr. this change does not fix all crashes that result from this, need more work on knotholder when it's editing clippaths or masks (bzr r7465) --- src/shape-editor.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/shape-editor.cpp') diff --git a/src/shape-editor.cpp b/src/shape-editor.cpp index 1b81e1a83..b5fd85858 100644 --- a/src/shape-editor.cpp +++ b/src/shape-editor.cpp @@ -20,6 +20,7 @@ #include "live_effects/lpeobject.h" #include "selection.h" #include "desktop.h" +#include "document.h" #include "desktop-handles.h" #include "knotholder.h" #include "live_effects/parameter/point.h" @@ -316,23 +317,22 @@ void ShapeEditor::set_item_lpe_path_parameter(SPItem *item, SPObject *lpeobject, Why not make a reload function in NodePath and in KnotHolder? */ void ShapeEditor::reset_item (SubType type, bool keep_knotholder) { + SPObject *item = sp_desktop_document(desktop)->getObjectByRepr(listener_attached_for); + switch (type) { case SH_NODEPATH: if ( (this->nodepath) && (IS_LIVEPATHEFFECT(this->nodepath->object)) ) { - SPItem * item = this->nodepath->item; SPObject *obj = this->nodepath->object; char * key = g_strdup(this->nodepath->repr_key); - set_item_lpe_path_parameter(item, obj, key); // the above checks for nodepath, so it is indeed a path that we are editing + set_item_lpe_path_parameter(SP_ITEM(item), obj, key); // the above checks for nodepath, so it is indeed a path that we are editing g_free(key); } else { - SPItem * item = (SPItem *) get_item(SH_NODEPATH); - set_item(item, SH_NODEPATH); + set_item(SP_ITEM(item), SH_NODEPATH); } break; case SH_KNOTHOLDER: if (this->knotholder) { - SPItem * item = (SPItem *) get_item(SH_KNOTHOLDER); - set_item(item, SH_KNOTHOLDER, keep_knotholder); + set_item(SP_ITEM(item), SH_KNOTHOLDER, keep_knotholder); } break; } -- cgit v1.2.3