diff options
| author | bulia byak <buliabyak@gmail.com> | 2006-11-20 18:37:19 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2006-11-20 18:37:19 +0000 |
| commit | 924ddbaf90c77140aa2175647d4621337895b7db (patch) | |
| tree | efe1a21596c3debcd8cb93cf99dade725f1f7a64 /src/seltrans.cpp | |
| parent | correct annotation; fixme (diff) | |
| download | inkscape-924ddbaf90c77140aa2175647d4621337895b7db.tar.gz inkscape-924ddbaf90c77140aa2175647d4621337895b7db.zip | |
yet another crash/freeze in ungrab. IMPORTANT: the document_done calls and others triggering screen redraw must come absolutely the last in any function, otherwise, because of the events that happened during the redraw, you risk seeing a vastly different landscape when you return for the remainder of your function (e.g. the tool context may have changed), and it will likely misbehave.
(bzr r1997)
Diffstat (limited to 'src/seltrans.cpp')
| -rw-r--r-- | src/seltrans.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/seltrans.cpp b/src/seltrans.cpp index 963c31d5b..cd68399b0 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -348,7 +348,6 @@ void Inkscape::SelTrans::ungrab() _message_context.clear(); - bool updh = true; if (!_empty && _changed) { sp_selection_apply_affine(selection, _current, (_show == SHOW_OUTLINE)? true : false); _center *= _current; @@ -367,6 +366,9 @@ void Inkscape::SelTrans::ungrab() } } + _items.clear(); + _items_centers.clear(); + if (_current.is_translation()) { sp_document_done(sp_desktop_document(_desktop), SP_VERB_CONTEXT_SELECT, _("Move")); @@ -381,15 +383,11 @@ void Inkscape::SelTrans::ungrab() _("Skew")); } - updh = false; - } - - if (updh) { + } else { + _items.clear(); + _items_centers.clear(); _updateHandles(); } - - _items.clear(); - _items_centers.clear(); } /* fixme: This is really bad, as we compare positions for each stamp (Lauris) */ |
