sync with 0.8.2cvs8
[claws.git] / src / summaryview.c
index cab3fb0778b27cc102d4e8d5e181859f5cba71e4..7d590c120613c4647c039a63fd22736c8de9cccd 100644 (file)
@@ -4456,6 +4456,8 @@ static void summary_key_pressed(GtkWidget *widget, GdkEventKey *event,
 {
        GtkCTree *ctree = GTK_CTREE(widget);
        GtkCTreeNode *node;
+       MessageView *messageview;
+       TextView *textview;
 
        if (summary_is_locked(summaryview)) return;
        if (!event) return;
@@ -4477,6 +4479,14 @@ static void summary_key_pressed(GtkWidget *widget, GdkEventKey *event,
                        return;
        }
 
+       messageview = summaryview->messageview;
+       if (messageview->type == MVIEW_MIME &&
+           gtk_notebook_get_current_page
+               (GTK_NOTEBOOK(messageview->mimeview->notebook)) == 1)
+               textview = messageview->mimeview->textview;
+       else
+               textview = messageview->textview;
+
        switch (event->keyval) {
        case GDK_space:         /* Page down or go to the next */
                if (summaryview->displayed != summaryview->selected) {
@@ -4484,12 +4494,11 @@ static void summary_key_pressed(GtkWidget *widget, GdkEventKey *event,
                                            summaryview->selected);
                        break;
                }
-               if (!textview_scroll_page(summaryview->messageview->textview,
-                                         FALSE))
+               if (!textview_scroll_page(textview, FALSE))
                        summary_select_next_unread(summaryview);
                break;
        case GDK_BackSpace:     /* Page up */
-               textview_scroll_page(summaryview->messageview->textview, TRUE);
+               textview_scroll_page(textview, TRUE);
                break;
        case GDK_Return:        /* Scroll up/down one line */
                if (summaryview->displayed != summaryview->selected) {
@@ -4497,8 +4506,8 @@ static void summary_key_pressed(GtkWidget *widget, GdkEventKey *event,
                                            summaryview->selected);
                        break;
                }
-               textview_scroll_one_line(summaryview->messageview->textview,
-                                        (event->state & GDK_MOD1_MASK) != 0);
+               textview_scroll_one_line
+                       (textview, (event->state & GDK_MOD1_MASK) != 0);
                break;
        case GDK_asterisk:      /* Mark */
                summary_mark(summaryview);
@@ -5013,6 +5022,8 @@ void summary_select_thread(SummaryView *summaryview)
        GtkCTreeNode *node = summaryview->selected;
        GList *cur;
 
+       g_return_if_fail(node != NULL);
+       
        while (GTK_CTREE_ROW(node)->parent != NULL)
                node = GTK_CTREE_ROW(node)->parent;