Index: src/messageview.c =================================================================== RCS file: /cvsroot/sylpheed-claws/sylpheed-claws/src/messageview.c,v retrieving revision 1.50 diff -r1.50 messageview.c 122a123 > messageview->plugview = gtk_socket_new(); 461,462c462,463 < if (mimeinfo->mime_type != MIME_TEXT && < mimeinfo->mime_type != MIME_TEXT_HTML) { --- > if (mimeinfo->mime_type != MIME_TEXT /*&& > mimeinfo->mime_type != MIME_TEXT_HTML*/) { 483a485 > GtkWidget *plugview = messageview->plugview; 488,490c490,497 < gtkut_container_remove < (GTK_CONTAINER(GTK_WIDGET_PTR(messageview)), < GTK_WIDGET_PTR(textview)); --- > if (messageview->type == MVIEW_TEXT) > gtkut_container_remove > (GTK_CONTAINER(GTK_WIDGET_PTR(messageview)), > GTK_WIDGET_PTR(textview)); > else if (messageview->type == MVIEW_PLUG) > gtkut_container_remove > (GTK_CONTAINER(GTK_WIDGET_PTR(messageview)), > GTK_WIDGET_PTR(plugview)); 496,499c503,511 < gtkut_container_remove < (GTK_CONTAINER(GTK_WIDGET_PTR(messageview)), < GTK_WIDGET_PTR(mimeview)); < --- > if (messageview->type == MVIEW_MIME) > gtkut_container_remove > (GTK_CONTAINER(GTK_WIDGET_PTR(messageview)), > GTK_WIDGET_PTR(mimeview)); > else if (messageview->type == MVIEW_PLUG) > gtkut_container_remove > (GTK_CONTAINER(GTK_WIDGET_PTR(messageview)), > GTK_WIDGET_PTR(plugview)); > 506c518,529 < } else --- > } else if (type == MVIEW_PLUG) { > if (messageview->type == MVIEW_MIME) > gtkut_container_remove > (GTK_CONTAINER(GTK_WIDGET_PTR(messageview)), > GTK_WIDGET_PTR(mimeview)); > else if (messageview->type == MVIEW_TEXT) > gtkut_container_remove > (GTK_CONTAINER(GTK_WIDGET_PTR(messageview)), > GTK_WIDGET_PTR(textview)); > gtk_box_pack_start(GTK_BOX(messageview->vbox), > GTK_WIDGET_PTR(plugview), TRUE, TRUE, 0); > } else 530a554 > gtk_widget_destroy(messageview->plugview); Index: src/messageview.h =================================================================== RCS file: /cvsroot/sylpheed-claws/sylpheed-claws/src/messageview.h,v retrieving revision 1.10 diff -r1.10 messageview.h 39c39,40 < MVIEW_MIME --- > MVIEW_MIME, > MVIEW_PLUG 53a55 > GtkWidget *plugview; Index: src/mimeview.c =================================================================== RCS file: /cvsroot/sylpheed-claws/sylpheed-claws/src/mimeview.c,v retrieving revision 1.38 diff -r1.38 mimeview.c 27a28 > #include 56d56 < 220a221 > mimeview->plugview = NULL; 351a353,356 > if (mimeview->plugview) { > printf("MIMVIEW destroyg %08x\n", mimeview->plugview); > gtk_widget_destroy(mimeview->plugview); > } 477a483,533 > static gint plugview_destroyed(GtkObject *o, gpointer data) > { > MimeView *m = (MimeView *) data; > printf("Destroy thingie %08x (%08x)\n", m->plugview, o); > m->plugview = NULL; > return TRUE; > } > > static void mimeview_show_dillo_part(MimeView *mimeview, MimeInfo *partinfo) > { > gchar *filename; > > if (!partinfo) return; > > filename = procmime_get_tmp_file_name(partinfo); > > if (procmime_get_part(filename, mimeview->file, partinfo) < 0) > alertpanel_error > (_("Can't get the part of multipart message.")); > else { > gchar *cmd; > /* Workaround for the GTK+ bug with handling scroll adjustments > * in GtkViewport */ > if (mimeview->plugview) > if (GTK_SOCKET(mimeview->plugview)->plug_window) { > gtk_widget_destroy(mimeview->plugview); > printf("Destroyed %08x\n", mimeview->plugview); > mimeview->plugview = NULL; > } > if (!mimeview->plugview) { > mimeview->plugview = gtk_socket_new(); > printf("Created %08x\n", mimeview->plugview); > gtk_signal_connect(GTK_OBJECT(mimeview->plugview), > "destroy", > GTK_SIGNAL_FUNC(plugview_destroyed), > mimeview); > } > mimeview_change_view_type(mimeview, MIMEVIEW_PLUG); > printf("SHowing %08x\n", mimeview->plugview); > gtk_widget_show(mimeview->plugview); > gtk_widget_realize(mimeview->plugview); > > cmd = g_strdup_printf("dillo -f -l -x %d \"%s\"", > GDK_WINDOW_XWINDOW(mimeview->plugview->window), > filename); > execute_command_line(cmd, TRUE); > /*unlink(filename);*/ > } > > g_free(filename); > } 481a538 > GtkWidget *plugview = mimeview->plugview; 484c541,542 < if (mimeview->type == type) return; --- > if (mimeview->type == type && type != MIMEVIEW_PLUG) return; > printf("Changing... to "); 494a553 > printf("Changing... to IMAGE\n"); 497a557,561 > case MIMEVIEW_PLUG: > printf("Changing... to PLUG\n"); > gtk_container_add(GTK_CONTAINER(mimeview->mime_vbox), > mimeview->plugview); > break; 498a563 > printf("Changing... to TEXT\n"); 515c580,584 < --- > > printf("Clearing...\n"); > if (mimeview->plugview) > gtk_widget_destroy(mimeview->plugview); > 551c620 < case MIME_TEXT_HTML: --- > /*case MIME_TEXT_HTML:*/ 568a638,640 > case MIME_TEXT_HTML: > mimeview_show_dillo_part(mimeview, partinfo); > break; Index: src/mimeview.h =================================================================== RCS file: /cvsroot/sylpheed-claws/sylpheed-claws/src/mimeview.h,v retrieving revision 1.3 diff -r1.3 mimeview.h 38c38,39 < MIMEVIEW_IMAGE --- > MIMEVIEW_IMAGE, > MIMEVIEW_PLUG 59a61 > GtkWidget *plugview;