* Fixed a memory leak in modest folder view
authorSergio Villar Senin <svillar@igalia.com>
Wed, 27 Jun 2007 07:42:11 +0000 (07:42 +0000)
committerSergio Villar Senin <svillar@igalia.com>
Wed, 27 Jun 2007 07:42:11 +0000 (07:42 +0000)
* Fixes NB#61607, the renaming was not working because we're getting the wrong response from the dialog

pmo-trunk-r2450

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

index 1e3cbe0..0564f08 100644 (file)
@@ -1360,7 +1360,8 @@ static void
 transfer_folder_cb (TnyFolder *folder, 
                    TnyFolderStore *into, 
                    gboolean cancelled, 
-                   TnyFolder *new_folder, GError **err, 
+                   TnyFolder *new_folder, 
+                   GError **err, 
                    gpointer user_data)
 {
        ModestMailOperation *self = NULL;
@@ -2212,8 +2213,8 @@ modest_mail_operation_notify_end (ModestMailOperation *self)
        
        /* Set the account back to not busy */
        if (priv->account_name) {
-               modest_account_mgr_set_account_busy(modest_runtime_get_account_mgr(), priv->account_name,
-                                                                                                                                                               FALSE);
+               modest_account_mgr_set_account_busy (modest_runtime_get_account_mgr(), 
+                                                    priv->account_name, FALSE);
                g_free(priv->account_name);
                priv->account_name = NULL;
        }
index 93e78f8..527ab4d 100644 (file)
@@ -1920,7 +1920,7 @@ modest_ui_actions_on_rename_folder (GtkAction *action,
                response = modest_platform_run_rename_folder_dialog (GTK_WINDOW (main_window), NULL,
                                                                     current_name, &folder_name);
 
-               if (response == GTK_RESPONSE_OK && strlen (folder_name) > 0) {
+               if (response == GTK_RESPONSE_ACCEPT && strlen (folder_name) > 0) {
                        ModestMailOperation *mail_op;
 
                        mail_op = modest_mail_operation_new (MODEST_MAIL_OPERATION_TYPE_INFO, G_OBJECT(main_window));
@@ -1978,7 +1978,7 @@ delete_folder (ModestMainWindow *main_window, gboolean move_to_trash)
        /* Ask the user */      
        message =  g_strdup_printf (_("mcen_nc_delete_folder_text"), 
                                    tny_folder_get_name (TNY_FOLDER (folder)));
-       response = modest_platform_run_confirmation_dialog (GTK_WINDOW (main_window), 
+       response = modest_platform_run_confirmation_dialog (GTK_WINDOW (main_window),
                                                            (const gchar *) message);
        g_free (message);
 
index 93f8ecc..e798afc 100644 (file)
@@ -847,7 +847,11 @@ modest_folder_view_update_model (ModestFolderView *self,
        /* Notify that there is no folder selected */
        g_signal_emit (G_OBJECT(self), 
                       signals[FOLDER_SELECTION_CHANGED_SIGNAL], 0,
-                      NULL, TRUE);
+                      NULL, FALSE);
+       if (priv->cur_folder_store) {
+               g_object_unref (priv->cur_folder_store);
+               priv->cur_folder_store = NULL;
+       }
 
        /* FIXME: the local accounts are not shown when the query
           selects only the subscribed folders. */
@@ -1370,9 +1374,18 @@ on_drag_data_received (GtkWidget *widget,
                   won't longer exist. We can not wait for the end of
                   the operation, because the operation won't start if
                   the folder is in use */
-               if (source_widget == widget)
+               if (source_widget == widget) {
+                       ModestFolderViewPrivate *priv;
+
+                       priv = MODEST_FOLDER_VIEW_GET_PRIVATE (widget);
+                       if (priv->cur_folder_store) {
+                               g_object_unref (priv->cur_folder_store);
+                               priv->cur_folder_store = NULL;
+                       }
+
                        g_signal_emit (G_OBJECT (widget), 
-                                      signals[FOLDER_SELECTION_CHANGED_SIGNAL], 0, NULL, TRUE);
+                                      signals[FOLDER_SELECTION_CHANGED_SIGNAL], 0, NULL, FALSE);
+               }
        }
 
        /* Check if the get_data failed */