From d87f2187f27b5ed9c5267f1a2cf82b90a1b91a45 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Mon, 29 Aug 2011 17:39:09 +0200 Subject: [PATCH 1/2] Do not suppress the 'Generate X-Mailer' option for new IMAP accounts While at it, remove redundant gtk_widget_show() calls. The option is enabled by default. --- src/prefs_account.c | 11 ----------- 1 files changed, 0 insertions(+), 11 deletions(-) diff --git a/src/prefs_account.c b/src/prefs_account.c index cb8004f..de7efa0 100644 --- a/src/prefs_account.c +++ b/src/prefs_account.c @@ -3941,8 +3941,6 @@ static void prefs_account_protocol_set_optmenu(PrefParam *pparam) gtk_widget_hide(send_page.msgid_checkbtn); } else gtk_widget_show(send_page.msgid_checkbtn); - - gtk_widget_show(send_page.xmailer_checkbtn); } } @@ -4091,7 +4089,6 @@ static void prefs_account_protocol_changed(GtkComboBox *combobox, gpointer data) gtk_widget_hide(protocol_optmenu->no_imap_warn_label); #endif gtk_widget_show(send_page.msgid_checkbtn); - gtk_widget_show(send_page.xmailer_checkbtn); gtk_widget_show(basic_page.nntpserv_label); gtk_widget_show(basic_page.nntpserv_entry); gtk_table_set_row_spacing (GTK_TABLE (basic_page.serv_table), @@ -4191,7 +4188,6 @@ static void prefs_account_protocol_changed(GtkComboBox *combobox, gpointer data) break; case A_LOCAL: gtk_widget_show(send_page.msgid_checkbtn); - gtk_widget_show(send_page.xmailer_checkbtn); gtk_widget_hide(protocol_optmenu->no_imap_warn_icon); gtk_widget_hide(protocol_optmenu->no_imap_warn_label); gtk_widget_hide(basic_page.nntpserv_label); @@ -4297,11 +4293,6 @@ static void prefs_account_protocol_changed(GtkComboBox *combobox, gpointer data) GTK_TOGGLE_BUTTON(send_page.msgid_checkbtn), TRUE); gtk_widget_hide(send_page.msgid_checkbtn); - if (new_account) - gtk_toggle_button_set_active( - GTK_TOGGLE_BUTTON(send_page.xmailer_checkbtn), - TRUE); - gtk_widget_hide(send_page.xmailer_checkbtn); gtk_widget_hide(basic_page.nntpserv_label); gtk_widget_hide(basic_page.nntpserv_entry); gtk_table_set_row_spacing (GTK_TABLE (basic_page.serv_table), @@ -4400,7 +4391,6 @@ static void prefs_account_protocol_changed(GtkComboBox *combobox, gpointer data) break; case A_NONE: gtk_widget_show(send_page.msgid_checkbtn); - gtk_widget_show(send_page.xmailer_checkbtn); gtk_widget_hide(protocol_optmenu->no_imap_warn_icon); gtk_widget_hide(protocol_optmenu->no_imap_warn_label); gtk_widget_hide(basic_page.nntpserv_label); @@ -4497,7 +4487,6 @@ static void prefs_account_protocol_changed(GtkComboBox *combobox, gpointer data) case A_POP3: default: gtk_widget_show(send_page.msgid_checkbtn); - gtk_widget_show(send_page.xmailer_checkbtn); gtk_widget_hide(protocol_optmenu->no_imap_warn_icon); gtk_widget_hide(protocol_optmenu->no_imap_warn_label); gtk_widget_hide(basic_page.nntpserv_label); -- 1.7.8 From 25a2534307cc327436007c8dc5820322c041f88e Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Sat, 9 Apr 2011 23:19:59 +0200 Subject: [PATCH 2/2] Truncate the tooltip text after 150 characters. Works around crashes in gdk with long space-less headers in the summaryview. --- src/summaryview.c | 19 ++++++++++++++++++- 1 files changed, 18 insertions(+), 1 deletions(-) diff --git a/src/summaryview.c b/src/summaryview.c index c1bfcb9..bb5eaf4 100644 --- a/src/summaryview.c +++ b/src/summaryview.c @@ -6234,6 +6234,7 @@ static gboolean tooltip_cb (GtkWidget *widget, MsgInfo *info = NULL; GdkRectangle rect; gboolean vert = (prefs_common.layout_mode == VERTICAL_LAYOUT); + static const int max_characters_in_tooltip_text = 150; if (!prefs_common.show_tooltips) return FALSE; @@ -6269,7 +6270,23 @@ static gboolean tooltip_cb (GtkWidget *widget, if (!text || !*text) return FALSE; - formatted = g_strdup(text); + /* + * Really long words in tooltip texts cause gdk to abort(). + * Workaround this by limiting the text to max_characters_in_tooltip_text characters. + */ + if (g_utf8_strlen(text, max_characters_in_tooltip_text+1) < max_characters_in_tooltip_text) + formatted = g_strdup(text); + else + { + gchar *tmp; + static const gchar truncation_signs[] = " [...]"; + formatted = g_strndup(text, max_characters_in_tooltip_text); + if (!formatted) + return FALSE; + tmp = g_utf8_find_prev_char(formatted, formatted+max_characters_in_tooltip_text-sizeof(truncation_signs)); + g_utf8_strncpy(tmp, truncation_signs, sizeof(truncation_signs)); + debug_print("Truncated tooltip text to %s\n", formatted); + } g_strstrip(formatted); if (!vert) -- 1.7.8