From e90e81720870f67ef45aeaae71898449d4b3e9b4 Mon Sep 17 00:00:00 2001 From: Colin Leroy Date: Mon, 10 Oct 2005 16:56:26 +0000 Subject: [PATCH] 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 --- ChangeLog-gtk2.claws | 23 +++++++++++++++++++++++ PATCHSETS | 1 + configure.ac | 2 +- src/etpan/imap-thread.c | 2 ++ src/gtk/colorlabel.c | 26 +++++++++++++++++++++----- src/main.c | 8 +++++++- src/mainwindow.c | 2 ++ src/msgcache.c | 10 ++-------- src/prefs_common.c | 8 ++++---- src/prefs_matcher.c | 5 ++++- 10 files changed, 67 insertions(+), 20 deletions(-) diff --git a/ChangeLog-gtk2.claws b/ChangeLog-gtk2.claws index 862609b46..b7bb50783 100644 --- a/ChangeLog-gtk2.claws +++ b/ChangeLog-gtk2.claws @@ -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 diff --git a/PATCHSETS b/PATCHSETS index 2b0c028d9..e7c0e3239 100644 --- a/PATCHSETS +++ b/PATCHSETS @@ -864,3 +864,4 @@ ( 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 diff --git a/configure.ac b/configure.ac index 9da0956fb..53d945372 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=9 MICRO_VERSION=15 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=27 +EXTRA_VERSION=28 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/etpan/imap-thread.c b/src/etpan/imap-thread.c index 97dee7c1f..d491a210c 100644 --- a/src/etpan/imap-thread.c +++ b/src/etpan/imap-thread.c @@ -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]; + + memset(buf, 0, 512); strncpy(buf, str, size > 510 ? 510:size); buf[511] = '\0'; if (size < 511) diff --git a/src/gtk/colorlabel.c b/src/gtk/colorlabel.c index c560ab006..4a8ce9d06 100644 --- a/src/gtk/colorlabel.c +++ b/src/gtk/colorlabel.c @@ -41,6 +41,7 @@ #include "colorlabel.h" #include "utils.h" +#include "gtkutils.h" 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); - 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, gc, + TRUE, 1, 1, widget->allocation.width - 2, + widget->allocation.height - 2); gdk_gc_unref(gc); - + return FALSE; } @@ -262,6 +263,19 @@ GtkWidget *colorlabel_create_check_color_menu_item(gint color_index) 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) @@ -313,7 +327,9 @@ GtkWidget *colorlabel_create_color_menu(void) 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; diff --git a/src/main.c b/src/main.c index a197f579a..e54d2ed37 100644 --- a/src/main.c +++ b/src/main.c @@ -390,6 +390,7 @@ int main(int argc, char *argv[]) gtk_window_set_default_icon(icon); folderview_initialize(); + 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; + 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, @@ -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); - main_window_cursor_normal(mainwin); /* 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 + 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)); diff --git a/src/mainwindow.c b/src/mainwindow.c index 929621e51..94a0af842 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -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)}, + {N_("/_View/Character _encoding/Western European (Windows-1252)"), + ENC_ACTION(C_WINDOWS_1252)}, ENC_SEPARATOR, {N_("/_View/Character _encoding/Central European (ISO-8859-_2)"), diff --git a/src/msgcache.c b/src/msgcache.c index e64aa4480..8e8273eff 100644 --- a/src/msgcache.c +++ b/src/msgcache.c @@ -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) { - 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; diff --git a/src/prefs_common.c b/src/prefs_common.c index 0c806fc2c..21d4165c0 100644 --- a/src/prefs_common.c +++ b/src/prefs_common.c @@ -141,7 +141,7 @@ static PrefParam param[] = { 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}, @@ -438,7 +438,7 @@ static PrefParam param[] = { {"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}, @@ -482,7 +482,7 @@ static PrefParam param[] = { {"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, @@ -494,7 +494,7 @@ static PrefParam param[] = { 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, diff --git a/src/prefs_matcher.c b/src/prefs_matcher.c index 31205056d..495dddd7a 100644 --- a/src/prefs_matcher.c +++ b/src/prefs_matcher.c @@ -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)); - + + 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) { -- 2.25.1