summaryrefslogtreecommitdiffstats
path: root/src/knotholder.cpp
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2012-04-07 19:25:08 +0000
committerJohan B. C. Engelen <j.b.c.engelen@alumnus.utwente.nl>2012-04-07 19:25:08 +0000
commit38876d0538b2fff87e8fd7b54ac3d77dbd779511 (patch)
tree0bc6fd3c7f83bc850e4b4d603694dbd8370bed3e /src/knotholder.cpp
parentgives distinguishing colors to two vector params of LPE rough hatches (diff)
downloadinkscape-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.cpp23
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"));
}