2005-10-10 [colin] 1.9.15cvs28
authorColin Leroy <colin@colino.net>
Mon, 10 Oct 2005 16:56:26 +0000 (16:56 +0000)
committerColin Leroy <colin@colino.net>
Mon, 10 Oct 2005 16:56:26 +0000 (16:56 +0000)
* src/mainwindow.c
Add Windows-1252 encoding
* src/prefs_common.c
Rework some defaults:
- autosave to draft by default
- don't show header pane (it's already in the textview)
- Select first new or unread mail on entry
- Assume 'Yes' to change folder when there's no more
  unread message
* src/prefs_matcher.c
Fix a gtk assertion failure
* src/gtk/colorlabel.c
Workaround bad repainting on selection
* src/main.c
Freeze/thaw (a bit faster on ssh -X)
* src/msgcache.c
Get rid of StrdupConverter that just adds an
extra strdup/free
* src/etpan/imap_thread.c
memset buf to 0

ChangeLog-gtk2.claws
PATCHSETS
configure.ac
src/etpan/imap-thread.c
src/gtk/colorlabel.c
src/main.c
src/mainwindow.c
src/msgcache.c
src/prefs_common.c
src/prefs_matcher.c

index 862609b46da481476b2684c1ebda7137089fd204..b7bb50783dbd0649e310ed0eff3550b2052051e5 100644 (file)
@@ -1,3 +1,26 @@
+2005-10-10 [colin]     1.9.15cvs28
+
+       * src/mainwindow.c
+               Add Windows-1252 encoding
+       * src/prefs_common.c
+               Rework some defaults:
+               - autosave to draft by default
+               - don't show header pane (it's already in the textview)
+               - Select first new or unread mail on entry
+               - Assume 'Yes' to change folder when there's no more
+                 unread message
+       * src/prefs_matcher.c
+               Fix a gtk assertion failure
+       * src/gtk/colorlabel.c
+               Workaround bad repainting on selection
+       * src/main.c
+               Freeze/thaw (a bit faster on ssh -X)
+       * src/msgcache.c
+               Get rid of StrdupConverter that just adds an
+               extra strdup/free 
+       * src/etpan/imap_thread.c
+               memset buf to 0
+
 2005-10-10 [colin]     1.9.15cvs27
 
        * src/export.c
 2005-10-10 [colin]     1.9.15cvs27
 
        * src/export.c
index 2b0c028d9a59a4cd724bc93503127ae60b97bf13..e7c0e3239671bc13f788053c49f3c2ef5a8f72ff 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.382.2.180 -r 1.382.2.181 src/compose.c;  cvs diff -u -r 1.50.2.14 -r 1.50.2.15 src/compose.h;  ) > 1.9.15cvs25.patchset
 ( cvs diff -u -r 1.274.2.70 -r 1.274.2.71 src/mainwindow.c;  cvs diff -u -r 1.94.2.66 -r 1.94.2.67 src/messageview.c;  cvs diff -u -r 1.395.2.133 -r 1.395.2.134 src/summaryview.c;  ) > 1.9.15cvs26.patchset
 ( cvs diff -u -r 1.8.2.12 -r 1.8.2.13 src/export.c;  cvs diff -u -r 1.13.2.11 -r 1.13.2.12 src/import.c;  ) > 1.9.15cvs27.patchset
 ( cvs diff -u -r 1.382.2.180 -r 1.382.2.181 src/compose.c;  cvs diff -u -r 1.50.2.14 -r 1.50.2.15 src/compose.h;  ) > 1.9.15cvs25.patchset
 ( cvs diff -u -r 1.274.2.70 -r 1.274.2.71 src/mainwindow.c;  cvs diff -u -r 1.94.2.66 -r 1.94.2.67 src/messageview.c;  cvs diff -u -r 1.395.2.133 -r 1.395.2.134 src/summaryview.c;  ) > 1.9.15cvs26.patchset
 ( cvs diff -u -r 1.8.2.12 -r 1.8.2.13 src/export.c;  cvs diff -u -r 1.13.2.11 -r 1.13.2.12 src/import.c;  ) > 1.9.15cvs27.patchset
+( cvs diff -u -r 1.115.2.57 -r 1.115.2.58 src/main.c;  cvs diff -u -r 1.274.2.71 -r 1.274.2.72 src/mainwindow.c;  cvs diff -u -r 1.16.2.27 -r 1.16.2.28 src/msgcache.c;  cvs diff -u -r 1.204.2.60 -r 1.204.2.61 src/prefs_common.c;  cvs diff -u -r 1.43.2.25 -r 1.43.2.26 src/prefs_matcher.c;  cvs diff -u -r 1.1.4.22 -r 1.1.4.23 src/etpan/imap-thread.c;  cvs diff -u -r 1.2.2.8 -r 1.2.2.9 src/gtk/colorlabel.c;  ) > 1.9.15cvs28.patchset
index 9da0956fbc4231f2ee5463b0855d8ed121e236fa..53d945372a34ebea1bcc9fa35515f61c3a5e69a5 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=15
 INTERFACE_AGE=0
 BINARY_AGE=0
 MICRO_VERSION=15
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=27
+EXTRA_VERSION=28
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 97dee7c1f8d182e0ba7440c8c3ff813bab3ac696..d491a210c8676260f5e6845a37e371fc121e825b 100644 (file)
@@ -42,6 +42,8 @@ static gboolean thread_manager_event(GIOChannel * source,
 void imap_logger(int direction, const char * str, size_t size) 
 {
        gchar buf[512];
 void imap_logger(int direction, const char * str, size_t size) 
 {
        gchar buf[512];
+
+       memset(buf, 0, 512);
        strncpy(buf, str, size > 510 ? 510:size);
        buf[511] = '\0';
        if (size < 511)
        strncpy(buf, str, size > 510 ? 510:size);
        buf[511] = '\0';
        if (size < 511)
index c560ab006886faa210beca59f68ff01bd0a63fe9..4a8ce9d0679553acc115e7e532259da73b32c734 100644 (file)
@@ -41,6 +41,7 @@
 
 #include "colorlabel.h"
 #include "utils.h"
 
 #include "colorlabel.h"
 #include "utils.h"
+#include "gtkutils.h"
 
 static gchar *labels[] = {
        N_("Orange"),
 
 static gchar *labels[] = {
        N_("Orange"),
@@ -129,15 +130,15 @@ static gboolean colorlabel_drawing_area_expose_event_cb
        gc = gdk_gc_new(drawable);
 
        gdk_gc_set_foreground(gc, &color);
        gc = gdk_gc_new(drawable);
 
        gdk_gc_set_foreground(gc, &color);
-       gdk_draw_rectangle(drawable, gc,
-                          TRUE, 0, 0, widget->allocation.width - 1,
-                          widget->allocation.height - 1);
        gdk_draw_rectangle(drawable, widget->style->black_gc,
                           FALSE, 0, 0, widget->allocation.width - 1,
                           widget->allocation.height - 1);
        gdk_draw_rectangle(drawable, widget->style->black_gc,
                           FALSE, 0, 0, widget->allocation.width - 1,
                           widget->allocation.height - 1);
+       gdk_draw_rectangle(drawable, gc,
+                          TRUE, 1, 1, widget->allocation.width - 2,
+                          widget->allocation.height - 2);
 
        gdk_gc_unref(gc);                          
 
        gdk_gc_unref(gc);                          
-
+       
        return FALSE;
 }
 
        return FALSE;
 }
 
@@ -262,6 +263,19 @@ GtkWidget *colorlabel_create_check_color_menu_item(gint color_index)
        return item;
 }
 
        return item;
 }
 
+/* Work around a gtk bug (?): without that, the selected menu item's 
+ * colored rectangle is drawn at 0,0 in the window...
+ */
+static void refresh_menu (GtkWidget *menushell, gpointer data)
+{
+       GtkMenu *menu = (GtkMenu *)data;
+       GtkWidget *widget = gtk_menu_get_attach_widget(menu);
+       gtk_widget_hide_all(widget);
+       gtk_widget_unrealize(widget);
+       gtk_widget_show_all(widget);
+       gtk_widget_queue_draw(widget);
+}
+
 /* colorlabel_create_color_menu() - creates a color menu without 
  * checkitems, probably for use in combo items */
 GtkWidget *colorlabel_create_color_menu(void)
 /* colorlabel_create_color_menu() - creates a color menu without 
  * checkitems, probably for use in combo items */
 GtkWidget *colorlabel_create_color_menu(void)
@@ -313,7 +327,9 @@ GtkWidget *colorlabel_create_color_menu(void)
                gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
                gtk_widget_show(item);
        }
                gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
                gtk_widget_show(item);
        }
-
+       
+       g_signal_connect(G_OBJECT(menu), "selection-done", 
+                       G_CALLBACK(refresh_menu), menu);
        gtk_widget_show(menu);
 
        return menu;
        gtk_widget_show(menu);
 
        return menu;
index a197f579a343f1c506f492c4bdcc81eb5ef0f413..e54d2ed37137cd8bd8f1d9dcf4e758cbef94e345 100644 (file)
@@ -390,6 +390,7 @@ int main(int argc, char *argv[])
        gtk_window_set_default_icon(icon);
 
        folderview_initialize();
        gtk_window_set_default_icon(icon);
 
        folderview_initialize();
+
        mh_gtk_init();
        imap_gtk_init();
        news_gtk_init();
        mh_gtk_init();
        imap_gtk_init();
        news_gtk_init();
@@ -398,6 +399,9 @@ int main(int argc, char *argv[])
                (prefs_common.sep_folder | prefs_common.sep_msg << 1);
        folderview = mainwin->folderview;
 
                (prefs_common.sep_folder | prefs_common.sep_msg << 1);
        folderview = mainwin->folderview;
 
+       gtk_clist_freeze(GTK_CLIST(mainwin->folderview->ctree));
+       folder_item_update_freeze();
+
        /* register the callback of unix domain socket input */
 #ifdef G_OS_UNIX
        lock_socket_tag = gdk_input_add(lock_socket,
        /* register the callback of unix domain socket input */
 #ifdef G_OS_UNIX
        lock_socket_tag = gdk_input_add(lock_socket,
@@ -435,7 +439,6 @@ int main(int argc, char *argv[])
        /* make one all-folder processing before using sylpheed */
        main_window_cursor_wait(mainwin);
        folder_func_to_all_folders(initial_processing, (gpointer *)mainwin);
        /* make one all-folder processing before using sylpheed */
        main_window_cursor_wait(mainwin);
        folder_func_to_all_folders(initial_processing, (gpointer *)mainwin);
-       main_window_cursor_normal(mainwin);
 
        /* if Sylpheed crashed, rebuild caches */
        if (!cmd.crash && crash_file_present) {
 
        /* if Sylpheed crashed, rebuild caches */
        if (!cmd.crash && crash_file_present) {
@@ -479,6 +482,9 @@ int main(int argc, char *argv[])
 #ifdef HAVE_STARTUP_NOTIFICATION
        startup_notification_complete(FALSE);
 #endif
 #ifdef HAVE_STARTUP_NOTIFICATION
        startup_notification_complete(FALSE);
 #endif
+       folder_item_update_thaw();
+       gtk_clist_thaw(GTK_CLIST(mainwin->folderview->ctree));
+       main_window_cursor_normal(mainwin);
 
        if (cmd.receive_all)
                g_timeout_add(1000, defer_check_all, GINT_TO_POINTER(FALSE));
 
        if (cmd.receive_all)
                g_timeout_add(1000, defer_check_all, GINT_TO_POINTER(FALSE));
index 929621e5159f66abc307470ce595437d0e4abf1d..94a0af8427afa3ce75bd67ceb22f271e01cb236f 100644 (file)
@@ -575,6 +575,8 @@ static GtkItemFactoryEntry mainwin_entries[] =
         ENC_ACTION(C_ISO_8859_1)},
        {N_("/_View/Character _encoding/Western European (ISO-8859-15)"),
         ENC_ACTION(C_ISO_8859_15)},
         ENC_ACTION(C_ISO_8859_1)},
        {N_("/_View/Character _encoding/Western European (ISO-8859-15)"),
         ENC_ACTION(C_ISO_8859_15)},
+       {N_("/_View/Character _encoding/Western European (Windows-1252)"),
+        ENC_ACTION(C_WINDOWS_1252)},
        ENC_SEPARATOR,
 
        {N_("/_View/Character _encoding/Central European (ISO-8859-_2)"),
        ENC_SEPARATOR,
 
        {N_("/_View/Character _encoding/Central European (ISO-8859-_2)"),
index e64aa44808f231dac6f41dd8e61dfb2627dec701..8e8273effb8137492840aec32c9f9412e00ac2f2 100644 (file)
@@ -461,15 +461,9 @@ MsgCache *msgcache_read_cache(FolderItem *item, const gchar *cache_file)
        if (srccharset == NULL || dstcharset == NULL) {
                conv = NULL;
        } else if (strcmp(srccharset, dstcharset) == 0) {
        if (srccharset == NULL || dstcharset == NULL) {
                conv = NULL;
        } else if (strcmp(srccharset, dstcharset) == 0) {
-               StrdupConverter *strdupconv;
+               debug_print("using Noop Converter\n");
 
 
-               debug_print("using StrdupConverter\n");
-
-               strdupconv = g_new0(StrdupConverter, 1);
-               strdupconv->converter.convert = strconv_strdup_convert;
-               strdupconv->converter.free = NULL;
-
-               conv = (StringConverter *) strdupconv;
+               conv = NULL;
        } else {
                CharsetConverter *charsetconv;
 
        } else {
                CharsetConverter *charsetconv;
 
index 0c806fc2ca8f58e778c1792f395bd2ca04eef1a4..21d4165c0d9e3444be4e3dfeb7670df29231a580 100644 (file)
@@ -141,7 +141,7 @@ static PrefParam param[] = {
         NULL, NULL, NULL},
        {"linewrap_before_sending", "FALSE", &prefs_common.linewrap_at_send, P_BOOL, 
         NULL, NULL, NULL},
         NULL, NULL, NULL},
        {"linewrap_before_sending", "FALSE", &prefs_common.linewrap_at_send, P_BOOL, 
         NULL, NULL, NULL},
-        {"autosave", "FALSE", &prefs_common.autosave,
+        {"autosave", "TRUE", &prefs_common.autosave,
         P_BOOL, NULL, NULL, NULL},
         {"autosave_length", "50", &prefs_common.autosave_length, P_INT,
         NULL, NULL, NULL},
         P_BOOL, NULL, NULL, NULL},
         {"autosave_length", "50", &prefs_common.autosave_length, P_INT,
         NULL, NULL, NULL},
@@ -438,7 +438,7 @@ static PrefParam param[] = {
 
        {"convert_mb_alnum", "FALSE", &prefs_common.conv_mb_alnum, P_BOOL,
         NULL, NULL, NULL},
 
        {"convert_mb_alnum", "FALSE", &prefs_common.conv_mb_alnum, P_BOOL,
         NULL, NULL, NULL},
-       {"display_header_pane", "TRUE", &prefs_common.display_header_pane,
+       {"display_header_pane", "FALSE", &prefs_common.display_header_pane,
         P_BOOL, NULL, NULL, NULL},
        {"display_header", "TRUE", &prefs_common.display_header, P_BOOL,
         NULL, NULL, NULL},
         P_BOOL, NULL, NULL, NULL},
        {"display_header", "TRUE", &prefs_common.display_header, P_BOOL,
         NULL, NULL, NULL},
@@ -482,7 +482,7 @@ static PrefParam param[] = {
        {"always_show_message_when_selected", "FALSE",
         &prefs_common.always_show_msg,
         P_BOOL, NULL, NULL, NULL},
        {"always_show_message_when_selected", "FALSE",
         &prefs_common.always_show_msg,
         P_BOOL, NULL, NULL, NULL},
-       {"select_on_entry", NULL, &prefs_common.select_on_entry,
+       {"select_on_entry", "2", &prefs_common.select_on_entry,
         P_ENUM, NULL, NULL, NULL},
        {"mark_as_read_on_new_window", "FALSE",
         &prefs_common.mark_as_read_on_new_window,
         P_ENUM, NULL, NULL, NULL},
        {"mark_as_read_on_new_window", "FALSE",
         &prefs_common.mark_as_read_on_new_window,
@@ -494,7 +494,7 @@ static PrefParam param[] = {
         P_BOOL, NULL, NULL, NULL},
        {"immediate_execution", "TRUE", &prefs_common.immediate_exec, P_BOOL,
         NULL, NULL, NULL},
         P_BOOL, NULL, NULL, NULL},
        {"immediate_execution", "TRUE", &prefs_common.immediate_exec, P_BOOL,
         NULL, NULL, NULL},
-       {"nextunreadmsg_dialog", NULL, &prefs_common.next_unread_msg_dialog, P_ENUM,
+       {"nextunreadmsg_dialog", "1", &prefs_common.next_unread_msg_dialog, P_ENUM,
         NULL, NULL, NULL},
 
        {"pixmap_theme_path", DEFAULT_PIXMAP_THEME, 
         NULL, NULL, NULL},
 
        {"pixmap_theme_path", DEFAULT_PIXMAP_THEME, 
index 31205056d4dad39492bdb2ac245827b66b093c10..495dddd7a542f4453e1d92e7e1f1cc38a4e44399 100644 (file)
@@ -1396,7 +1396,10 @@ static void prefs_matcher_criteria_select(GtkList *list,
        old_value = matcher.selected_criteria;
        matcher.selected_criteria = value = get_sel_from_list
                (GTK_LIST(matcher.criteria_list));
        old_value = matcher.selected_criteria;
        matcher.selected_criteria = value = get_sel_from_list
                (GTK_LIST(matcher.criteria_list));
-       
+
+       if (old_value == matcher.selected_criteria)
+               return;
+
        /* CLAWS: the value widget is currently either the color label combo box,
         * or a GtkEntry, so kiss for now */
        if (matcher.selected_criteria == CRITERIA_COLORLABEL) { 
        /* CLAWS: the value widget is currently either the color label combo box,
         * or a GtkEntry, so kiss for now */
        if (matcher.selected_criteria == CRITERIA_COLORLABEL) {