2006-04-06 [mones] 2.1.0cvs7
[claws.git] / src / toolbar.c
index 90c460450a07ac324ed5f961fe588b2f448d52ad..27fc83fec2699d70ceb47f2294369dba8b0b2a9f 100644 (file)
@@ -176,8 +176,7 @@ struct {
        { "A_GOTO_NEXT",        N_("Go to Next Unread Message")            },
        { "A_IGNORE_THREAD",    N_("Ignore thread")                        },
        { "A_PRINT",            N_("Print")                                },
-       { "A_LEARN_SPAM",       N_("Learn Spam")                           },
-       { "A_LEARN_HAM",        N_("Learn Ham")                            },
+       { "A_LEARN_SPAM",       N_("Learn Spam or Ham")                    },
 
        { "A_SEND",             N_("Send Message")                         },
        { "A_SENDL",            N_("Put into queue folder and send later") },
@@ -654,10 +653,8 @@ void toolbar_clear_list(ToolbarType source)
                toolbar_config[source].item_list = 
                        g_slist_remove(toolbar_config[source].item_list, item);
 
-               if (item->file)
-                       g_free(item->file);
-               if (item->text)
-                       g_free(item->text);
+               g_free(item->file);
+               g_free(item->text);
                g_free(item);   
        }
        g_slist_free(toolbar_config[source].item_list);
@@ -1129,7 +1126,15 @@ static void toolbar_prev_unread_cb(GtkWidget *widget, gpointer data)
                
        case TOOLBAR_MSGVIEW:
                msgview = (MessageView*)toolbar_item->parent;
+               msgview->updating = TRUE;
                summary_select_prev_unread(msgview->mainwin->summaryview);
+               msgview->updating = FALSE;
+
+               if (msgview->deferred_destroy) {
+                       debug_print("messageview got away!\n");
+                       messageview_destroy(msgview);
+                       return;
+               }
                
                /* Now we need to update the messageview window */
                if (msgview->mainwin->summaryview->selected) {
@@ -1168,8 +1173,16 @@ static void toolbar_next_unread_cb(GtkWidget *widget, gpointer data)
                
        case TOOLBAR_MSGVIEW:
                msgview = (MessageView*)toolbar_item->parent;
+               msgview->updating = TRUE;
                summary_select_next_unread(msgview->mainwin->summaryview);
-               
+               msgview->updating = FALSE;
+
+               if (msgview->deferred_destroy) {
+                       debug_print("messageview got away!\n");
+                       messageview_destroy(msgview);
+                       return;
+               }
+
                /* Now we need to update the messageview window */
                if (msgview->mainwin->summaryview->selected) {
                        GtkCTree *ctree = GTK_CTREE(msgview->mainwin->summaryview->ctree);
@@ -1367,7 +1380,6 @@ static void toolbar_buttons_cb(GtkWidget   *widget,
                { A_IGNORE_THREAD,      toolbar_ignore_thread_cb        },
                { A_PRINT,              toolbar_print_cb                },
                { A_LEARN_SPAM,         toolbar_learn_cb                },
-               { A_LEARN_HAM,          toolbar_learn_cb                },
 
                { A_SEND,               toolbar_send_cb                 },
                { A_SENDL,              toolbar_send_later_cb           },
@@ -1917,8 +1929,7 @@ void toolbar_main_set_sensitive(gpointer data)
        while (entry_list != NULL) {
                Entry *e = (Entry*) entry_list->data;
 
-               if (e)
-                       g_free(e);
+               g_free(e);
                entry_list = g_slist_remove(entry_list, e);
        }