diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2012-04-07 19:25:08 +0000 |
|---|---|---|
| committer | Johan B. C. Engelen <j.b.c.engelen@alumnus.utwente.nl> | 2012-04-07 19:25:08 +0000 |
| commit | 38876d0538b2fff87e8fd7b54ac3d77dbd779511 (patch) | |
| tree | 0bc6fd3c7f83bc850e4b4d603694dbd8370bed3e /src/knotholder.cpp | |
| parent | gives distinguishing colors to two vector params of LPE rough hatches (diff) | |
| download | inkscape-38876d0538b2fff87e8fd7b54ac3d77dbd779511.tar.gz inkscape-38876d0538b2fff87e8fd7b54ac3d77dbd779511.zip | |
fix possible crasher in knot_clicked_handler
(bzr r11174)
Diffstat (limited to 'src/knotholder.cpp')
| -rw-r--r-- | src/knotholder.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/knotholder.cpp b/src/knotholder.cpp index 513c02834..1bb09a05b 100644 --- a/src/knotholder.cpp +++ b/src/knotholder.cpp @@ -105,7 +105,8 @@ bool KnotHolder::knot_mouseover() void KnotHolder::knot_clicked_handler(SPKnot *knot, guint state) { - KnotHolder *knot_holder = this; + KnotHolder *knot_holder = this; + SPItem *saved_item = this->item; for(std::list<KnotHolderEntity *>::iterator i = knot_holder->entity.begin(); i != knot_holder->entity.end(); ++i) { KnotHolderEntity *e = *i; @@ -116,33 +117,33 @@ KnotHolder::knot_clicked_handler(SPKnot *knot, guint state) } } - if (SP_IS_SHAPE(item)) { - SP_SHAPE(item)->setShape(); + if (SP_IS_SHAPE(saved_item)) { + SP_SHAPE(saved_item)->setShape(); } knot_holder->update_knots(); unsigned int object_verb = SP_VERB_NONE; - if (SP_IS_RECT(item)) + if (SP_IS_RECT(saved_item)) object_verb = SP_VERB_CONTEXT_RECT; - else if (SP_IS_BOX3D(item)) + else if (SP_IS_BOX3D(saved_item)) object_verb = SP_VERB_CONTEXT_3DBOX; - else if (SP_IS_GENERICELLIPSE(item)) + else if (SP_IS_GENERICELLIPSE(saved_item)) object_verb = SP_VERB_CONTEXT_ARC; - else if (SP_IS_STAR(item)) + else if (SP_IS_STAR(saved_item)) object_verb = SP_VERB_CONTEXT_STAR; - else if (SP_IS_SPIRAL(item)) + else if (SP_IS_SPIRAL(saved_item)) object_verb = SP_VERB_CONTEXT_SPIRAL; - else if (SP_IS_OFFSET(item)) { - if (SP_OFFSET(item)->sourceHref) + else if (SP_IS_OFFSET(saved_item)) { + if (SP_OFFSET(saved_item)->sourceHref) object_verb = SP_VERB_SELECTION_LINKED_OFFSET; else object_verb = SP_VERB_SELECTION_DYNAMIC_OFFSET; } // for drag, this is done by ungrabbed_handler, but for click we must do it here - DocumentUndo::done(item->document, object_verb, + DocumentUndo::done(saved_item->document, object_verb, _("Change handle")); } |
