X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmaemo%2Fmodest-msg-edit-window.c;h=da9416480dc1780f4a9868de05f2bdbeb1dfbb60;hp=de7e2a2b169d9ec0866510b1ffa0df78f3cc58e4;hb=362784ce756b3f0e31cd451d9ac5e69b909d4053;hpb=85b60b61bf30595fabd3bb9b3c5e2d9a0592912f;ds=sidebyside diff --git a/src/maemo/modest-msg-edit-window.c b/src/maemo/modest-msg-edit-window.c index de7e2a2..da94164 100644 --- a/src/maemo/modest-msg-edit-window.c +++ b/src/maemo/modest-msg-edit-window.c @@ -120,7 +120,8 @@ static void modest_msg_edit_window_add_attachment_clicked (GtkButton *button, ModestMsgEditWindow *window); /* ModestWindow methods implementation */ -static void modest_msg_edit_window_set_zoom (ModestWindow *window, gdouble zoom); +static void modest_msg_edit_window_disconnect_signals (ModestWindow *window); +static void modest_msg_edit_window_set_zoom (ModestWindow *window, gdouble zoom); static gdouble modest_msg_edit_window_get_zoom (ModestWindow *window); static gboolean modest_msg_edit_window_zoom_minus (ModestWindow *window); static gboolean modest_msg_edit_window_zoom_plus (ModestWindow *window); @@ -321,10 +322,9 @@ modest_msg_edit_window_class_init (ModestMsgEditWindowClass *klass) modest_window_class->zoom_minus_func = modest_msg_edit_window_zoom_minus; modest_window_class->show_toolbar_func = modest_msg_edit_window_show_toolbar; modest_window_class->save_state_func = save_state; + modest_window_class->disconnect_signals_func = modest_msg_edit_window_disconnect_signals; g_type_class_add_private (gobject_class, sizeof(ModestMsgEditWindowPrivate)); - - } static void @@ -556,17 +556,25 @@ init_window (ModestMsgEditWindow *obj) } +static void +modest_msg_edit_window_disconnect_signals (ModestWindow *window) +{ + ModestMsgEditWindowPrivate *priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (window); + if (g_signal_handler_is_connected (gtk_clipboard_get (GDK_SELECTION_PRIMARY), + priv->clipboard_change_handler_id)) + g_signal_handler_disconnect (gtk_clipboard_get (GDK_SELECTION_PRIMARY), + priv->clipboard_change_handler_id); +} static void modest_msg_edit_window_finalize (GObject *obj) { ModestMsgEditWindowPrivate *priv = MODEST_MSG_EDIT_WINDOW_GET_PRIVATE (obj); - if (priv->clipboard_change_handler_id > 0) { - g_signal_handler_disconnect (gtk_clipboard_get (GDK_SELECTION_PRIMARY), priv->clipboard_change_handler_id); - priv->clipboard_change_handler_id = 0; - } + /* Sanity check: shouldn't be needed, the window mgr should + call this function before */ + modest_msg_edit_window_disconnect_signals (MODEST_WINDOW (obj)); if (priv->draft_msg != NULL) { TnyHeader *header = tny_msg_get_header (priv->draft_msg); @@ -674,7 +682,7 @@ replace_with_attachments (ModestMsgEditWindow *self, GList *attachments) g_object_unref (stream); if (pixbuf != NULL) { - wp_text_buffer_replace_image (WP_TEXT_BUFFER (priv->text_buffer), cid, pixbuf); +/* wp_text_buffer_replace_image (WP_TEXT_BUFFER (priv->text_buffer), cid, pixbuf); */ g_object_unref (pixbuf); } }