* Fixes NB#101559, rename folders is working again
authorSergio Villar Senin <svillar@igalia.com>
Thu, 12 Feb 2009 12:15:20 +0000 (12:15 +0000)
committerSergio Villar Senin <svillar@igalia.com>
Thu, 12 Feb 2009 12:15:20 +0000 (12:15 +0000)
pmo-trunk-r7475

src/hildon2/modest-folder-window.c
src/hildon2/modest-header-window.c
src/modest-ui-actions.c

index f34ac92..520b04c 100644 (file)
@@ -510,12 +510,21 @@ edit_mode_changed (ModestFolderWindow *folder_window,
                break;
        }
 
-       if (enabled)
+       if (enabled) {
                modest_folder_view_set_filter (MODEST_FOLDER_VIEW (priv->folder_view), 
                                               filter);
-       else
+       } else {
+               GtkTreeSelection *sel;
+
+               /* Unselect all. This will prevent us from keeping a
+                  reference to a TnyObject that we don't want to
+                  have */
+               sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->folder_view));
+               gtk_tree_selection_unselect_all (sel);
+
                modest_folder_view_unset_filter (MODEST_FOLDER_VIEW (priv->folder_view), 
                                                 filter);
+       }
 }
 
 static gboolean 
index e2dfaee..80a41c8 100644 (file)
@@ -956,12 +956,21 @@ edit_mode_changed (ModestHeaderWindow *header_window,
                break;
        }
 
-       if (enabled)
+       if (enabled) {
                modest_header_view_set_filter (MODEST_HEADER_VIEW (priv->header_view), 
                                               filter);
-       else
+       } else {
+               GtkTreeSelection *sel;
+
+               /* Unselect all. This will prevent us from keeping a
+                  reference to a TnyObject that we don't want to
+                  have */
+               sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->header_view));
+               gtk_tree_selection_unselect_all (sel);
+
                modest_header_view_unset_filter (MODEST_HEADER_VIEW (priv->header_view), 
                                                 filter);
+       }
 }
 
 static void 
index bb59a55..59c28a6 100644 (file)
@@ -3510,7 +3510,7 @@ on_rename_folder_performer (gboolean canceled,
                check_memory_full_error ((GtkWidget *) parent_window, err);
        } else {
 
-               mail_op = 
+               mail_op =
                        modest_mail_operation_new_with_error_handling (G_OBJECT(parent_window),
                                        modest_ui_actions_rename_folder_error_handler,
                                        parent_window, NULL);
@@ -3523,13 +3523,17 @@ on_rename_folder_performer (gboolean canceled,
                        folder_view = modest_main_window_get_child_widget (
                                MODEST_MAIN_WINDOW (parent_window),
                                MODEST_MAIN_WINDOW_WIDGET_TYPE_FOLDER_VIEW);
-
-                       /* Clear the headers view */
-                       sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
-                       gtk_tree_selection_unselect_all (sel);
-               } else {
-                       folder_view = NULL;
+               } 
+#ifdef MODEST_TOOLKIT_HILDON2
+               else if (MODEST_IS_FOLDER_WINDOW (parent_window)) {
+                       ModestFolderWindow *folder_window = (ModestFolderWindow *) parent_window;
+                       folder_view = GTK_WIDGET (modest_folder_window_get_folder_view (folder_window));
                }
+#endif
+
+               /* Clear the folders view */
+               sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_view));
+               gtk_tree_selection_unselect_all (sel);
 
                /* Actually rename the folder */
                modest_mail_operation_rename_folder (mail_op,