diff options
| author | Mikko Rasa <tdb@tdb.fi> | 2018-04-12 17:01:12 +0000 |
|---|---|---|
| committer | Mikko Rasa <tdb@tdb.fi> | 2018-04-12 17:01:12 +0000 |
| commit | 7c83ae64c3b43faf7f2f07fe86396475b9d9f718 (patch) | |
| tree | ff97fc88cd0c2000f9cafa06845b4b90d4cf0ca5 /src/widgets/arc-toolbar.cpp | |
| parent | Merge branch 'updategridwidgets' of gitlab.com:darktrojan/inkscape (diff) | |
| download | inkscape-7c83ae64c3b43faf7f2f07fe86396475b9d9f718.tar.gz inkscape-7c83ae64c3b43faf7f2f07fe86396475b9d9f718.zip | |
Fix inconsistent signal disconnection in arc toolbar
Leaving the repr listener up while the selection signal was disconnected
caused a crash when the attribute change callback was called with an old
item pointer still stored in tbl.
Diffstat (limited to 'src/widgets/arc-toolbar.cpp')
| -rw-r--r-- | src/widgets/arc-toolbar.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/widgets/arc-toolbar.cpp b/src/widgets/arc-toolbar.cpp index d19b8672c..23ecad50a 100644 --- a/src/widgets/arc-toolbar.cpp +++ b/src/widgets/arc-toolbar.cpp @@ -596,8 +596,10 @@ static void arc_toolbox_check_ec(SPDesktop* desktop, Inkscape::UI::Tools::ToolBa changed = desktop->getSelection()->connectChanged(sigc::bind(sigc::ptr_fun(sp_arc_toolbox_selection_changed), holder)); sp_arc_toolbox_selection_changed(desktop->getSelection(), holder); } else { - if (changed) + if (changed) { changed.disconnect(); + purge_repr_listener(NULL, holder); + } } } |
