Actually display "(No From)" in messageview's From column when appropriate.
[claws.git] / src / summaryview.c
index 102961df95e273c89bfdcf619276cec598bf064e..4986a65a1c33545aab016746fd88614e63a2c99f 100644 (file)
@@ -525,9 +525,6 @@ SummaryView *summary_create(MainWindow *mainwin)
        debug_print("Creating summary view...\n");
        summaryview = g_new0(SummaryView, 1);
 
-#if !(GTK_CHECK_VERSION(2,12,0))
-       summaryview->tooltips = tips;
-#endif
 #define SUMMARY_VBOX_SPACING 3
        vbox = gtk_vbox_new(FALSE, SUMMARY_VBOX_SPACING);
        
@@ -2508,6 +2505,8 @@ static void summary_set_marks_func(GtkCMCTree *ctree, GtkCMCTreeNode *node,
 
        msginfo = gtk_cmctree_node_get_row_data(ctree, node);
 
+       cm_return_if_fail(msginfo != NULL);
+
        if (MSG_IS_DELETED(msginfo->flags))
                summaryview->deleted++;
 
@@ -2808,7 +2807,9 @@ static void summary_set_column_titles(SummaryView *summaryview)
                        gtk_box_pack_start(GTK_BOX(hbox), label,
                                           FALSE, FALSE, 0);
 
-               if (summaryview->sort_key == sort_by[type]) {
+               if (summaryview->sort_key == sort_by[type] ||
+                   (summaryview->sort_key == SORT_BY_THREAD_DATE &&
+                    sort_by[SORT_BY_DATE])) {
                        arrow = gtk_arrow_new
                                (summaryview->sort_type == SORT_ASCENDING
                                 ? GTK_ARROW_DOWN : GTK_ARROW_UP,
@@ -3349,7 +3350,7 @@ static inline void summary_set_header(SummaryView *summaryview, gchar *text[],
                        extract_address(from_text);
                }
                if (!from_text)
-                       _("(No From)");         
+                       from_text = _("(No From)");
        } else {
                gchar *tmp = summary_complete_address(msginfo->from);
                if (tmp) {
@@ -3363,10 +3364,11 @@ static inline void summary_set_header(SummaryView *summaryview, gchar *text[],
                                from_text = msginfo->from;
                        else {
                                from_text = msginfo->from;
-                               extract_address(from_text);
+                               if (from_text)
+                                       extract_address(from_text);
                        }
                        if (!from_text)
-                               _("(No From)");         
+                               from_text = _("(No From)");
                }
        }
        
@@ -3632,16 +3634,9 @@ static void summary_display_msg_full(SummaryView *summaryview,
                        data->msginfo = procmsg_msginfo_new_ref(msginfo);
                        if (summaryview->mark_as_read_timeout_tag != 0)
                                g_source_remove(summaryview->mark_as_read_timeout_tag);
-
-#if GLIB_CHECK_VERSION(2,14,0)
                        summaryview->mark_as_read_timeout_tag = 
                                g_timeout_add_seconds(prefs_common.mark_as_read_delay,
                                        msginfo_mark_as_read_timeout, data);
-#else
-                       summaryview->mark_as_read_timeout_tag = 
-                               g_timeout_add(prefs_common.mark_as_read_delay * 1000,
-                                       msginfo_mark_as_read_timeout, data);
-#endif
                } else if (new_window || !prefs_common.mark_as_read_on_new_window) {
                        msginfo_mark_as_read(summaryview, msginfo, row);
                }
@@ -6185,7 +6180,7 @@ static gint summary_tag_cmp_list(gconstpointer a, gconstpointer b)
                return tag_b == NULL ? 0:1;
        
        if (tag_b == NULL)
-               return tag_a == NULL ? 0:1;
+               return 1;
 
        return g_utf8_collate(tag_a, tag_b);
 }
@@ -7114,7 +7109,10 @@ static void summary_size_clicked(GtkWidget *button, SummaryView *summaryview)
 
 static void summary_date_clicked(GtkWidget *button, SummaryView *summaryview)
 {
-       summary_sort_by_column_click(summaryview, SORT_BY_DATE);
+       if (summaryview->sort_key == SORT_BY_DATE)
+               summary_sort_by_column_click(summaryview, SORT_BY_DATE);
+       else
+               summary_sort_by_column_click(summaryview, SORT_BY_THREAD_DATE);
 }
 
 static void summary_from_clicked(GtkWidget *button, SummaryView *summaryview)
@@ -8015,9 +8013,6 @@ void summary_update_unread(SummaryView *summaryview, FolderItem *removed_item)
        guint new, unread, unreadmarked, marked, total;
        guint replied, forwarded, locked, ignored, watched;
        static gboolean tips_initialized = FALSE;
-#if !(GTK_CHECK_VERSION(2,12,0))
-       GtkTooltips *tips = summaryview->tooltips;
-#endif
 
        if (prefs_common.layout_mode != SMALL_LAYOUT) {
                if (tips_initialized) {