+2006-03-18 [colin] 2.0.0cvs152
+
+ * src/summaryview.c
+ Set cursor to watch for execution (fixes lack
+ of watch-cursor when dnd'ing hundreds of mails)
+ * src/gtk/filesel.c
+ Check that mime type is 'image/*' before updating
+ the preview (maybe fix crashes on Solaris+gtk2.8.4 ?)
+
2006-03-18 [colin] 2.0.0cvs151
* src/mainwindow.c
( cvs diff -u -r 1.274.2.102 -r 1.274.2.103 src/mainwindow.c; cvs diff -u -r 1.39.2.14 -r 1.39.2.15 src/mainwindow.h; cvs diff -u -r 1.1.2.17 -r 1.1.2.18 src/prefs_msg_colors.c; cvs diff -u -r 1.395.2.182 -r 1.395.2.183 src/summaryview.c; cvs diff -u -r 1.68.2.19 -r 1.68.2.20 src/summaryview.h; cvs diff -u -r 1.2.2.11 -r 1.2.2.12 src/gtk/colorlabel.c; cvs diff -u -r 1.1.4.3 -r 1.1.4.4 src/gtk/colorlabel.h; ) > 2.0.0cvs149.patchset
( cvs diff -u -r 1.213.2.86 -r 1.213.2.87 src/folder.c; ) > 2.0.0cvs150.patchset
( cvs diff -u -r 1.274.2.103 -r 1.274.2.104 src/mainwindow.c; cvs diff -u -r 1.96.2.102 -r 1.96.2.103 src/textview.c; cvs diff -u -r 1.12.2.10 -r 1.12.2.11 src/textview.h; ) > 2.0.0cvs151.patchset
+( cvs diff -u -r 1.395.2.183 -r 1.395.2.184 src/summaryview.c; cvs diff -u -r 1.2.2.22 -r 1.2.2.23 src/gtk/filesel.c; ) > 2.0.0cvs152.patchset
#include "gtkutils.h"
#include "utils.h"
#include "codeconv.h"
+#include "procmime.h"
#include "prefs_common.h"
static void
update_preview_cb (GtkFileChooser *file_chooser, gpointer data)
{
GtkWidget *preview;
- char *filename;
- GdkPixbuf *pixbuf;
- gboolean have_preview;
+ char *filename = NULL, *type = NULL;
+ GdkPixbuf *pixbuf = NULL;
+ gboolean have_preview = FALSE;
preview = GTK_WIDGET (data);
filename = gtk_file_chooser_get_preview_filename (file_chooser);
if (filename == NULL)
return;
- pixbuf = gdk_pixbuf_new_from_file_at_size (filename, 128, 128, NULL);
- have_preview = (pixbuf != NULL);
+ type = procmime_get_mime_type(filename);
+
+ if (type && !strncmp(type, "image/", 6))
+ pixbuf = gdk_pixbuf_new_from_file_at_size (filename, 128, 128, NULL);
+
+ g_free(type);
g_free (filename);
- gtk_image_set_from_pixbuf (GTK_IMAGE (preview), pixbuf);
- if (pixbuf)
+ if (pixbuf) {
+ have_preview = TRUE;
+ gtk_image_set_from_pixbuf (GTK_IMAGE (preview), pixbuf);
gdk_pixbuf_unref (pixbuf);
+ }
gtk_file_chooser_set_preview_widget_active (file_chooser, have_preview);
}
gtk_clist_freeze(clist);
+ main_window_cursor_wait(summaryview->mainwin);
+
if (summaryview->threaded)
summary_unthread_for_exec(summaryview);
gtk_ctree_node_moveto(ctree, summaryview->selected, 0, 0.5, 0);
summary_unlock(summaryview);
-
+
+ main_window_cursor_normal(summaryview->mainwin);
+
if (move_val < 0)
summary_show(summaryview, summaryview->folder_item);
return TRUE;