Added an extra check
authorSergio Villar Senín <svillar@igalia.com>
Fri, 8 May 2009 16:13:16 +0000 (18:13 +0200)
committerSergio Villar Senín <svillar@igalia.com>
Fri, 8 May 2009 16:13:16 +0000 (18:13 +0200)
Properly disconnect a signal on finalize

src/modest-mail-operation.c
src/widgets/modest-folder-view.c

index 4f277ab..c7399b5 100644 (file)
@@ -2097,7 +2097,7 @@ modest_mail_operation_create_folder (ModestMailOperation *self,
                }
        }
 
                }
        }
 
-       if (!strcmp (name, " ") || strchr (name, '/')) {
+       if (!priv->error && (!strcmp (name, " ") || strchr (name, '/'))) {
                priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
                g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
                             MODEST_MAIL_OPERATION_ERROR_FOLDER_RULES,
                priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
                g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
                             MODEST_MAIL_OPERATION_ERROR_FOLDER_RULES,
index fb32922..bd1673c 100644 (file)
@@ -1385,6 +1385,19 @@ modest_folder_view_finalize (GObject *obj)
                priv->display_name_changed_signal = 0;
        }
 
                priv->display_name_changed_signal = 0;
        }
 
+#ifdef MODEST_TOOLKIT_HILDON2
+       GtkTreeModel *tny_model;
+
+       if (get_inner_models (MODEST_FOLDER_VIEW (obj), NULL, NULL, &tny_model)) {
+               if (g_signal_handler_is_connected (tny_model,
+                                                  priv->activity_changed_handler)) {
+                       g_signal_handler_disconnect (tny_model,
+                                                    priv->activity_changed_handler);
+                       priv->activity_changed_handler = 0;
+               }
+       }
+#endif
+
        if (priv->query) {
                g_object_unref (G_OBJECT (priv->query));
                priv->query = NULL;
        if (priv->query) {
                g_object_unref (G_OBJECT (priv->query));
                priv->query = NULL;