summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2006-08-18 06:07:48 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2006-08-18 06:07:48 +0000
commit406e47cb21825ebbebc2bbe434491494661ffa85 (patch)
tree2b3ce368bf8f10ef95d2f5531cdfaed04b63e6d0 /src/widgets
parentinsert SPDesktopWidget directly into the window, without a box (diff)
downloadinkscape-406e47cb21825ebbebc2bbe434491494661ffa85.tar.gz
inkscape-406e47cb21825ebbebc2bbe434491494661ffa85.zip
disconnect signals on destroying
(bzr r1613)
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/desktop-widget.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index 9ede6f27e..6b15bb370 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -348,6 +348,13 @@ sp_desktop_widget_destroy (GtkObject *object)
SPDesktopWidget *dtw = SP_DESKTOP_WIDGET (object);
if (dtw->desktop) {
+ g_signal_handlers_disconnect_by_func(G_OBJECT (dtw->zoom_status), (gpointer) G_CALLBACK(sp_dtw_zoom_input), dtw);
+ g_signal_handlers_disconnect_by_func(G_OBJECT (dtw->zoom_status), (gpointer) G_CALLBACK(sp_dtw_zoom_output), dtw);
+ gtk_signal_disconnect_by_data (GTK_OBJECT (dtw->zoom_status), dtw->zoom_status);
+ g_signal_handlers_disconnect_by_func (G_OBJECT (dtw->zoom_status), (gpointer) G_CALLBACK (sp_dtw_zoom_value_changed), dtw);
+ g_signal_handlers_disconnect_by_func (G_OBJECT (dtw->zoom_status), (gpointer) G_CALLBACK (sp_dtw_zoom_populate_popup), dtw);
+ g_signal_handlers_disconnect_by_func (G_OBJECT (dtw->canvas), (gpointer) G_CALLBACK (sp_desktop_widget_event), dtw);
+
dtw->layer_selector->unreference();
inkscape_remove_desktop (dtw->desktop); // clears selection too
dtw->modified_connection.disconnect();