2005-10-04 [colin] 1.9.15cvs9
[claws.git] / src / folderview.c
index 058b6a4f4aab6ccec98fdc3712aeafb7f33d16ab..8b8fd5a02a64458838a024bc9161d44e7e7a0f2a 100644 (file)
@@ -14,7 +14,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #include "defs.h"
@@ -1766,6 +1766,29 @@ static gboolean folderview_key_pressed(GtkWidget *widget, GdkEventKey *event,
        return FALSE;
 }
 
+gboolean folderview_process_open(gpointer data)
+{
+       FolderView *folderview = (FolderView *)data;
+       FolderItem *item = NULL;
+       
+       if (!folderview || !folderview->opened) {
+               debug_print("opened NULL\n");
+               return FALSE;
+       }
+       item = gtk_ctree_node_get_row_data(
+               GTK_CTREE(folderview->ctree), 
+               folderview->opened);
+       
+       if (!item)
+               return FALSE;
+
+       folder_item_update_freeze();
+       folder_item_process_open(item);
+       folder_item_update_thaw();
+       
+       return FALSE;   
+}
+
 static void folderview_selected(GtkCTree *ctree, GtkCTreeNode *row,
                                gint column, FolderView *folderview)
 {
@@ -1803,6 +1826,7 @@ static void folderview_selected(GtkCTree *ctree, GtkCTreeNode *row,
                if (olditem) {
                        /* will be null if we just moved the previously opened folder */
                        summary_save_prefs_to_folderitem(folderview->summaryview, olditem);
+                       summary_show(folderview->summaryview, NULL);
                        folder_item_close(olditem);
                }
        }
@@ -1851,6 +1875,7 @@ static void folderview_selected(GtkCTree *ctree, GtkCTreeNode *row,
 
                return;
         }
+       
 
        main_window_cursor_normal(folderview->mainwin);
 
@@ -1870,6 +1895,8 @@ static void folderview_selected(GtkCTree *ctree, GtkCTreeNode *row,
                        gtk_ctree_node_moveto(ctree, row, -1, 0.5, 0);
        }
 
+       g_timeout_add(0, folderview_process_open, folderview);
+
        STATUSBAR_POP(folderview->mainwin);
 
        folderview->open_folder = FALSE;
@@ -1976,10 +2003,10 @@ static void folderview_empty_trash_cb(FolderView *folderview, guint action,
        FolderItem *item;
        GSList *mlist = NULL;
        GSList *cur = NULL;
-       if (!folderview->selected) return;
        FolderItem *special_trash = NULL;
        PrefsAccount *ac;
 
+       if (!folderview->selected) return;
        item = gtk_ctree_node_get_row_data(ctree, folderview->selected);
        g_return_if_fail(item != NULL);
        g_return_if_fail(item->folder != NULL);
@@ -2194,9 +2221,10 @@ void folderview_reflect_prefs_pixmap_theme(FolderView *folderview)
 void folderview_reflect_prefs(void)
 {
        FolderView *folderview = mainwindow_get_mainwindow()->folderview;
+       FolderItem *item = folderview_get_selected_item(folderview);    
        normal_style = normal_color_style = bold_style = 
                bold_color_style = bold_tgtfold_style = NULL;
-       FolderItem *item = folderview_get_selected_item(folderview);
+
        folderview_init(folderview);
        folderview_column_set_titles(folderview);
        folderview_set_all();