sync with 0.7.6cvs4
[claws.git] / src / messageview.c
index 4c5e5f6e1d28b797987e8fe7d01d1798e45cfe57..72ab34eec79d1e8e0f90bfe5083c21dd4c8eeef3 100644 (file)
@@ -506,7 +506,14 @@ void messageview_set_font(MessageView *messageview)
 
 void messageview_copy_clipboard(MessageView *messageview)
 {
-       switch (messageview->type) {
+       gint displaytype = /* force MVIEV_TEXT on first page */
+               ((messageview->type == MVIEW_MIME)
+               && (gtk_notebook_get_current_page(GTK_NOTEBOOK(
+                               messageview->mimeview->notebook)) > 0))
+               ? MVIEW_MIME
+               : MVIEW_TEXT;
+
+       switch (displaytype) {
        case MVIEW_TEXT:
                gtk_editable_copy_clipboard(GTK_EDITABLE(messageview->textview->text));
                break;
@@ -520,16 +527,20 @@ void messageview_copy_clipboard(MessageView *messageview)
 
 void messageview_select_all(MessageView *messageview)
 {
-       switch (messageview->type) {
-       case MVIEW_TEXT:
-               gtk_editable_select_region(GTK_EDITABLE(messageview->textview->text), 0, -1);
-               break;
-       case MVIEW_MIME:
-               if (messageview->mimeview->type == MIMEVIEW_TEXT)
-                       gtk_editable_select_region(GTK_EDITABLE(messageview->mimeview->textview->text), 0, -1);
-       default:
-               break;
+       GtkWidget *text = NULL;
+
+       if (messageview->type == MVIEW_TEXT)
+               text = messageview->textview->text;
+       else if (messageview->type == MVIEW_MIME) {
+               if (gtk_notebook_get_current_page
+                       (GTK_NOTEBOOK(messageview->mimeview->notebook)) == 0)
+                       text = messageview->textview->text;
+               else if (messageview->mimeview->type == MIMEVIEW_TEXT)
+                       text = messageview->mimeview->textview->text;
        }
+
+       if (text)
+               gtk_editable_select_region(GTK_EDITABLE(text), 0, -1);
 }
 
 void messageview_set_position(MessageView *messageview, gint pos)