2005-05-06 [paul] 1.9.6cvs56
[claws.git] / src / mainwindow.c
index 94bd360badece87b048442cf46951296ce5e6f75..335a12ce1332d35636d9edfba73195bdc65d434d 100644 (file)
@@ -20,6 +20,7 @@
 #include "defs.h"
 
 #include <glib.h>
+#include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtkmain.h>
 #include <gtk/gtkwindow.h>
@@ -42,7 +43,6 @@
 #include <gtk/gtktooltips.h>
 #include <string.h>
 
-#include "intl.h"
 #include "main.h"
 #include "mainwindow.h"
 #include "folderview.h"
@@ -447,7 +447,7 @@ static GtkItemFactoryEntry mainwin_entries[] =
        {N_("/_File/---"),                      NULL, NULL, 0, "<Separator>"},
        {N_("/_File/_Import mbox file..."),     NULL, import_mbox_cb, 0, NULL},
        {N_("/_File/_Export to mbox file..."),  NULL, export_mbox_cb, 0, NULL},
-       {N_("/_File/_Export selected to mbox file..."), 
+       {N_("/_File/Exp_ort selected to mbox file..."), 
                                                NULL, export_list_mbox_cb, 0, NULL},
        {N_("/_File/---"),                      NULL, NULL, 0, "<Separator>"},
        {N_("/_File/Empty all _Trash folders"), "<shift>D", empty_trash_cb, 0, NULL},
@@ -488,7 +488,7 @@ static GtkItemFactoryEntry mainwin_entries[] =
                                                NULL, toggle_statusbar_cb, 0, "<ToggleItem>"},
        {N_("/_View/---"),                      NULL, NULL, 0, "<Separator>"},
        {N_("/_View/Separate f_older tree"),    NULL, separate_widget_cb, SEPARATE_FOLDER, "<ToggleItem>"},
-       {N_("/_View/Separate m_essage view"),   NULL, separate_widget_cb, SEPARATE_MESSAGE, "<ToggleItem>"},
+       {N_("/_View/Separate _message view"),   NULL, separate_widget_cb, SEPARATE_MESSAGE, "<ToggleItem>"},
        {N_("/_View/---"),                      NULL, NULL, 0, "<Separator>"},
        {N_("/_View/_Sort"),                    NULL, NULL, 0, "<Branch>"},
        {N_("/_View/_Sort/by _number"),         NULL, sort_summary_cb, SORT_BY_NUMBER, "<RadioItem>"},
@@ -544,100 +544,111 @@ static GtkItemFactoryEntry mainwin_entries[] =
        {N_("/_View/_Go to/Other _folder..."),  "G", goto_folder_cb, 0, NULL},
        {N_("/_View/---"),                      NULL, NULL, 0, "<Separator>"},
 
-#define CODESET_SEPARATOR \
-       {N_("/_View/_Code set/---"),            NULL, NULL, 0, "<Separator>"}
-#define CODESET_ACTION(action) \
-        NULL, set_charset_cb, action, "/View/Code set/Auto detect"
+#define ENC_SEPARATOR \
+       {N_("/_View/Character _encoding/---"),          NULL, NULL, 0, "<Separator>"}
+#define ENC_ACTION(action) \
+        NULL, set_charset_cb, action, "/View/Character encoding/Auto detect"
 
-       {N_("/_View/_Code set"),                NULL, NULL, 0, "<Branch>"},
-       {N_("/_View/_Code set/_Auto detect"),
+       {N_("/_View/Character _encoding"),              NULL, NULL, 0, "<Branch>"},
+       {N_("/_View/Character _encoding/_Auto detect"),
         NULL, set_charset_cb, C_AUTO, "<RadioItem>"},
-       {N_("/_View/_Code set/---"),            NULL, NULL, 0, "<Separator>"},
-       {N_("/_View/_Code set/7bit ascii (US-ASC_II)"),
-        CODESET_ACTION(C_US_ASCII)},
-
-       {N_("/_View/_Code set/Unicode (_UTF-8)"),
-        CODESET_ACTION(C_UTF_8)},
-       CODESET_SEPARATOR,
-       {N_("/_View/_Code set/Western European (ISO-8859-_1)"),
-        CODESET_ACTION(C_ISO_8859_1)},
-       {N_("/_View/_Code set/Western European (ISO-8859-15)"),
-        CODESET_ACTION(C_ISO_8859_15)},
-       CODESET_SEPARATOR,
-       {N_("/_View/_Code set/Central European (ISO-8859-_2)"),
-        CODESET_ACTION(C_ISO_8859_2)},
-       CODESET_SEPARATOR,
-       {N_("/_View/_Code set/_Baltic (ISO-8859-13)"),
-        CODESET_ACTION(C_ISO_8859_13)},
-       {N_("/_View/_Code set/Baltic (ISO-8859-_4)"),
-        CODESET_ACTION(C_ISO_8859_4)},
-       CODESET_SEPARATOR,
-       {N_("/_View/_Code set/Greek (ISO-8859-_7)"),
-        CODESET_ACTION(C_ISO_8859_7)},
-       CODESET_SEPARATOR,
-       {N_("/_View/_Code set/Turkish (ISO-8859-_9)"),
-        CODESET_ACTION(C_ISO_8859_9)},
-       CODESET_SEPARATOR,
-       {N_("/_View/_Code set/Cyrillic (ISO-8859-_5)"),
-        CODESET_ACTION(C_ISO_8859_5)},
-       {N_("/_View/_Code set/Cyrillic (KOI8-_R)"),
-        CODESET_ACTION(C_KOI8_R)},
-       {N_("/_View/_Code set/Cyrillic (KOI8-U)"),
-        CODESET_ACTION(C_KOI8_U)},
-       {N_("/_View/_Code set/Cyrillic (Windows-1251)"),
-        CODESET_ACTION(C_WINDOWS_1251)},
-       CODESET_SEPARATOR,
-       {N_("/_View/_Code set/Japanese (ISO-2022-_JP)"),
-        CODESET_ACTION(C_ISO_2022_JP)},
-       {N_("/_View/_Code set/Japanese (ISO-2022-JP-2)"),
-        CODESET_ACTION(C_ISO_2022_JP_2)},
-       {N_("/_View/_Code set/Japanese (_EUC-JP)"),
-        CODESET_ACTION(C_EUC_JP)},
-       {N_("/_View/_Code set/Japanese (_Shift__JIS)"),
-        CODESET_ACTION(C_SHIFT_JIS)},
-       CODESET_SEPARATOR,
-       {N_("/_View/_Code set/Simplified Chinese (_GB2312)"),
-        CODESET_ACTION(C_GB2312)},
-       {N_("/_View/_Code set/Traditional Chinese (_Big5)"),
-        CODESET_ACTION(C_BIG5)},
-       {N_("/_View/_Code set/Traditional Chinese (EUC-_TW)"),
-        CODESET_ACTION(C_EUC_TW)},
-       {N_("/_View/_Code set/Chinese (ISO-2022-_CN)"),
-        CODESET_ACTION(C_ISO_2022_CN)},
-       CODESET_SEPARATOR,
-       {N_("/_View/_Code set/Korean (EUC-_KR)"),
-        CODESET_ACTION(C_EUC_KR)},
-       {N_("/_View/_Code set/Korean (ISO-2022-KR)"),
-        CODESET_ACTION(C_ISO_2022_KR)},
-       CODESET_SEPARATOR,
-       {N_("/_View/_Code set/Thai (TIS-620)"),
-        CODESET_ACTION(C_TIS_620)},
-       {N_("/_View/_Code set/Thai (Windows-874)"),
-        CODESET_ACTION(C_WINDOWS_874)},
-
-#undef CODESET_SEPARATOR
-#undef CODESET_ACTION
-
-#define DECODE_SEPARATOR \
+       {N_("/_View/Character _encoding/---"),          NULL, NULL, 0, "<Separator>"},
+       {N_("/_View/Character _encoding/7bit ascii (US-ASC_II)"),
+        ENC_ACTION(C_US_ASCII)},
+       {N_("/_View/Character _encoding/Unicode (_UTF-8)"),
+        ENC_ACTION(C_UTF_8)},
+       ENC_SEPARATOR,
+
+       {N_("/_View/Character _encoding/Western European (ISO-8859-_1)"),
+        ENC_ACTION(C_ISO_8859_1)},
+       {N_("/_View/Character _encoding/Western European (ISO-8859-15)"),
+        ENC_ACTION(C_ISO_8859_15)},
+       ENC_SEPARATOR,
+
+       {N_("/_View/Character _encoding/Central European (ISO-8859-_2)"),
+        ENC_ACTION(C_ISO_8859_2)},
+       ENC_SEPARATOR,
+
+       {N_("/_View/Character _encoding/_Baltic (ISO-8859-13)"),
+        ENC_ACTION(C_ISO_8859_13)},
+       {N_("/_View/Character _encoding/Baltic (ISO-8859-_4)"),
+        ENC_ACTION(C_ISO_8859_4)},
+       ENC_SEPARATOR,
+
+       {N_("/_View/Character _encoding/Greek (ISO-8859-_7)"),
+        ENC_ACTION(C_ISO_8859_7)},
+       ENC_SEPARATOR,
+
+       {N_("/_View/Character _encoding/Turkish (ISO-8859-_9)"),
+        ENC_ACTION(C_ISO_8859_9)},
+       ENC_SEPARATOR,
+
+       {N_("/_View/Character _encoding/Cyrillic (ISO-8859-_5)"),
+        ENC_ACTION(C_ISO_8859_5)},
+       {N_("/_View/Character _encoding/Cyrillic (KOI8-_R)"),
+        ENC_ACTION(C_KOI8_R)},
+       {N_("/_View/Character _encoding/Cyrillic (KOI8-U)"),
+        ENC_ACTION(C_KOI8_U)},
+       {N_("/_View/Character _encoding/Cyrillic (Windows-1251)"),
+        ENC_ACTION(C_CP1251)},
+       ENC_SEPARATOR,
+
+       {N_("/_View/Character _encoding/Japanese (ISO-2022-_JP)"),
+        ENC_ACTION(C_ISO_2022_JP)},
+       {N_("/_View/Character _encoding/Japanese (ISO-2022-JP-2)"),
+        ENC_ACTION(C_ISO_2022_JP_2)},
+       {N_("/_View/Character _encoding/Japanese (_EUC-JP)"),
+        ENC_ACTION(C_EUC_JP)},
+       {N_("/_View/Character _encoding/Japanese (_Shift__JIS)"),
+        ENC_ACTION(C_SHIFT_JIS)},
+       ENC_SEPARATOR,
+
+       {N_("/_View/Character _encoding/Simplified Chinese (_GB2312)"),
+        ENC_ACTION(C_GB2312)},
+       {N_("/_View/Character _encoding/Simplified Chinese (GBK)"),
+        ENC_ACTION(C_GBK)},
+       {N_("/_View/Character _encoding/Traditional Chinese (_Big5)"),
+        ENC_ACTION(C_BIG5)},
+       {N_("/_View/Character _encoding/Traditional Chinese (EUC-_TW)"),
+        ENC_ACTION(C_EUC_TW)},
+       {N_("/_View/Character _encoding/Chinese (ISO-2022-_CN)"),
+        ENC_ACTION(C_ISO_2022_CN)},
+       ENC_SEPARATOR,
+
+       {N_("/_View/Character _encoding/Korean (EUC-_KR)"),
+        ENC_ACTION(C_EUC_KR)},
+       {N_("/_View/Character _encoding/Korean (ISO-2022-KR)"),
+        ENC_ACTION(C_ISO_2022_KR)},
+       ENC_SEPARATOR,
+
+       {N_("/_View/Character _encoding/Thai (TIS-620)"),
+        ENC_ACTION(C_TIS_620)},
+       {N_("/_View/Character _encoding/Thai (Windows-874)"),
+        ENC_ACTION(C_WINDOWS_874)},
+
+#undef ENC_SEPARATOR
+#undef ENC_ACTION
+
+#define DEC_SEPARATOR \
        {N_("/_View/Decode/---"),               NULL, NULL, 0, "<Separator>"}
-#define DECODE_ACTION(action) \
+#define DEC_ACTION(action) \
         NULL, set_decode_cb, action, "/View/Decode/Auto detect"
        {N_("/_View/Decode"),           NULL, NULL, 0, "<Branch>"},
        {N_("/_View/Decode/_Auto detect"),
         NULL, set_decode_cb, 0, "<RadioItem>"},
        {N_("/_View/Decode/---"),               NULL, NULL, 0, "<Separator>"},
-       {N_("/_View/Decode/_8bit"),             DECODE_ACTION(ENC_8BIT)},
-       {N_("/_View/Decode/_Quoted printable"), DECODE_ACTION(ENC_QUOTED_PRINTABLE)},
-       {N_("/_View/Decode/_Base64"),           DECODE_ACTION(ENC_BASE64)},
-       {N_("/_View/Decode/_Uuencode"),         DECODE_ACTION(ENC_X_UUENCODE)},
+       {N_("/_View/Decode/_8bit"),             DEC_ACTION(ENC_8BIT)},
+       {N_("/_View/Decode/_Quoted printable"), DEC_ACTION(ENC_QUOTED_PRINTABLE)},
+       {N_("/_View/Decode/_Base64"),           DEC_ACTION(ENC_BASE64)},
+       {N_("/_View/Decode/_Uuencode"),         DEC_ACTION(ENC_X_UUENCODE)},
 
-#undef DECODE_SEPARATOR
-#undef DECODE_ACTION
+#undef DEC_SEPARATOR
+#undef DEC_ACTION
 
        {N_("/_View/---"),                      NULL, NULL, 0, "<Separator>"},
        {N_("/_View/Open in new _window"),      "<control><alt>N", open_msg_cb, 0, NULL},
        {N_("/_View/Mess_age source"),          "<control>U", view_source_cb, 0, NULL},
-       {N_("/_View/Show all _headers"),        "<control>H", show_all_header_cb, 0, "<ToggleItem>"},
+       {N_("/_View/Show all headers"),         "<control>H", show_all_header_cb, 0, "<ToggleItem>"},
        {N_("/_View/---"),                      NULL, NULL, 0, "<Separator>"},
        {N_("/_View/_Update summary"),          "<control><alt>U", update_summary_cb,  0, NULL},
 
@@ -704,19 +715,19 @@ static GtkItemFactoryEntry mainwin_entries[] =
                                                NULL, create_filter_cb, FILTER_BY_TO, NULL},
        {N_("/_Tools/_Create filter rule/by _Subject"),
                                                NULL, create_filter_cb, FILTER_BY_SUBJECT, NULL},
-       {N_("/_Tools/_Create processing rule"), NULL, NULL, 0, "<Branch>"},
-       {N_("/_Tools/_Create processing rule/_Automatically"),
+       {N_("/_Tools/C_reate processing rule"), NULL, NULL, 0, "<Branch>"},
+       {N_("/_Tools/C_reate processing rule/_Automatically"),
                                                NULL, create_processing_cb, FILTER_BY_AUTO, NULL},
-       {N_("/_Tools/_Create processing rule/by _From"),
+       {N_("/_Tools/C_reate processing rule/by _From"),
                                                NULL, create_processing_cb, FILTER_BY_FROM, NULL},
-       {N_("/_Tools/_Create processing rule/by _To"),
+       {N_("/_Tools/C_reate processing rule/by _To"),
                                                NULL, create_processing_cb, FILTER_BY_TO, NULL},
-       {N_("/_Tools/_Create processing rule/by _Subject"),
+       {N_("/_Tools/C_reate processing rule/by _Subject"),
                                                NULL, create_processing_cb, FILTER_BY_SUBJECT, NULL},
        {N_("/_Tools/---"),                     NULL, NULL, 0, "<Separator>"},
        {N_("/_Tools/Actio_ns"),                NULL, NULL, 0, "<Branch>"},
        {N_("/_Tools/---"),                     NULL, NULL, 0, "<Separator>"},
-       {N_("/_Tools/_Check for new messages in all folders"),
+       {N_("/_Tools/Ch_eck for new messages in all folders"),
                                                NULL, update_folderview_cb, 0, NULL},
        {N_("/_Tools/Delete du_plicated messages"),
                                                NULL, NULL, 0, "<Branch>"},
@@ -728,7 +739,7 @@ static GtkItemFactoryEntry mainwin_entries[] =
        {N_("/_Tools/E_xecute"),                "X", execute_summary_cb, 0, NULL},
 #ifdef USE_OPENSSL
        {N_("/_Tools/---"),                     NULL, NULL, 0, "<Separator>"},
-       {N_("/_Tools/SSL certi_ficates..."),    
+       {N_("/_Tools/SSL cer_tificates..."),    
                                                NULL, ssl_manager_open_cb, 0, NULL},
 #endif
        {N_("/_Tools/---"),                     NULL, NULL, 0, "<Separator>"},
@@ -744,24 +755,24 @@ static GtkItemFactoryEntry mainwin_entries[] =
        {N_("/_Configuration/_Edit accounts..."),
                                                NULL, account_edit_open, 0, NULL},
        {N_("/_Configuration/---"),             NULL, NULL, 0, "<Separator>"},
-       {N_("/_Configuration/_Preferences..."),
+       {N_("/_Configuration/P_references..."),
                                                NULL, prefs_open_cb, 0, NULL},
-       {N_("/_Configuration/Pre-processing..."),
+       {N_("/_Configuration/Pre-pr_ocessing..."),
                                                NULL, prefs_pre_processing_open_cb, 0, NULL},
-       {N_("/_Configuration/Post-processing..."),
+       {N_("/_Configuration/Post-pro_cessing..."),
                                                NULL, prefs_post_processing_open_cb, 0, NULL},
        {N_("/_Configuration/_Filtering..."),
                                                NULL, prefs_filtering_open_cb, 0, NULL},
        {N_("/_Configuration/_Templates..."),   NULL, prefs_template_open_cb, 0, NULL},
        {N_("/_Configuration/_Actions..."),     NULL, prefs_actions_open_cb, 0, NULL},
-       {N_("/_Configuration/Plugins..."),      NULL, plugins_open_cb, 0, NULL},
+       {N_("/_Configuration/Plu_gins..."),     NULL, plugins_open_cb, 0, NULL},
 
        {N_("/_Help"),                          NULL, NULL, 0, "<Branch>"},
        {N_("/_Help/_Manual (Local)"),          NULL, manual_open_cb, MANUAL_MANUAL_LOCAL, NULL},
-       {N_("/_Help/_Manual (Sylpheed Doc Homepage)"),
+       {N_("/_Help/Ma_nual (Sylpheed Doc Homepage)"),
                                                NULL, manual_open_cb, MANUAL_MANUAL_SYLDOC, NULL},
        {N_("/_Help/_FAQ (Local)"),             NULL, manual_open_cb, MANUAL_FAQ_LOCAL, NULL},
-       {N_("/_Help/_FAQ (Sylpheed Doc Homepage)"),
+       {N_("/_Help/FA_Q (Sylpheed Doc Homepage)"),
                                                NULL, manual_open_cb, MANUAL_FAQ_SYLDOC, NULL},
        {N_("/_Help/_Claws FAQ (Claws Documentation)"),
                                                NULL, manual_open_cb, MANUAL_FAQ_CLAWS, NULL},
@@ -1026,7 +1037,7 @@ MainWindow *main_window_create(SeparateType type)
 
        /* set menu items */
        menuitem = gtk_item_factory_get_item
-               (ifactory, "/View/Code set/Auto detect");
+               (ifactory, "/View/Character encoding/Auto detect");
        gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), TRUE);
 
        switch (prefs_common.toolbar_style) {
@@ -1468,17 +1479,20 @@ void main_window_toggle_message_view(MainWindow *mainwin)
                gtk_widget_ref(vpaned);
                gtkut_container_remove(GTK_CONTAINER(container), vpaned);
                gtk_widget_reparent(GTK_WIDGET_PTR(summaryview), container);
-               gtk_arrow_set(GTK_ARROW(summaryview->toggle_arrow),
-                             GTK_ARROW_UP, GTK_SHADOW_OUT);
        } else {
                mainwin->messageview->visible = TRUE;
                gtk_widget_reparent(GTK_WIDGET_PTR(summaryview), vpaned);
                gtk_container_add(GTK_CONTAINER(container), vpaned);
                gtk_widget_unref(vpaned);
-               gtk_arrow_set(GTK_ARROW(summaryview->toggle_arrow),
-                             GTK_ARROW_DOWN, GTK_SHADOW_OUT);
        }
 
+       if (messageview_is_visible(mainwin->messageview))
+               gtk_arrow_set(GTK_ARROW(mainwin->summaryview->toggle_arrow),
+                             GTK_ARROW_DOWN, GTK_SHADOW_OUT);
+       else
+               gtk_arrow_set(GTK_ARROW(mainwin->summaryview->toggle_arrow),
+                             GTK_ARROW_UP, GTK_SHADOW_OUT);
+
        if (mainwin->messageview->visible == FALSE)
                messageview_clear(mainwin->messageview);
 
@@ -1923,13 +1937,13 @@ void main_window_show(MainWindow *mainwin)
                                  prefs_common.mainwin_x,
                                  prefs_common.mainwin_y);
 
-       gtk_widget_set_usize(GTK_WIDGET_PTR(mainwin->folderview),
+       gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->folderview),
                             prefs_common.folderview_width,
                             prefs_common.folderview_height);
-       gtk_widget_set_usize(GTK_WIDGET_PTR(mainwin->summaryview),
+       gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->summaryview),
                             prefs_common.summaryview_width,
                             prefs_common.summaryview_height);
-       gtk_widget_set_usize(GTK_WIDGET_PTR(mainwin->messageview),
+       gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->messageview),
                             prefs_common.msgview_width,
                             prefs_common.msgview_height);
 
@@ -1982,37 +1996,75 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
 
        debug_print("Setting widgets... ");
 
+       gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->folderview),
+                                   prefs_common.folderview_width,
+                                   prefs_common.folderview_height);
+       gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->summaryview),
+                                   prefs_common.summaryview_width,
+                                   prefs_common.summaryview_height);
+       gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->messageview),
+                                   prefs_common.msgview_width,
+                                   prefs_common.msgview_height);
+
        /* create separated window(s) if needed */
        if (type & SEPARATE_FOLDER) {
+               static GdkGeometry folderwin_geometry;
+               
                folderwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
                gtk_window_set_title(GTK_WINDOW(folderwin),
                                     _("Sylpheed - Folder View"));
-               gtk_window_set_resizable(GTK_WINDOW(folderwin), TRUE);
-               gtk_window_move(GTK_WINDOW(folderwin), prefs_common.folderwin_x,
+
+               gtk_window_move(GTK_WINDOW(folderwin),
+                               prefs_common.folderwin_x,
                                prefs_common.folderwin_y);
+
+               if (!folderwin_geometry.min_height) {
+                       folderwin_geometry.min_width = 320;
+                       folderwin_geometry.min_height = 200;
+               }
+               gtk_window_set_geometry_hints(GTK_WINDOW(folderwin), NULL,
+                                             &folderwin_geometry, GDK_HINT_MIN_SIZE);
+                               
+               gtk_widget_set_size_request(folderwin,
+                                           prefs_common.folderview_width,
+                                           prefs_common.folderview_height);
+
                gtk_container_set_border_width(GTK_CONTAINER(folderwin),
                                               BORDER_WIDTH);
+
                g_signal_connect(G_OBJECT(folderwin), "delete_event",
                                 G_CALLBACK(folder_window_close_cb),
                                   mainwin);
                gtk_container_add(GTK_CONTAINER(folderwin),
                                  GTK_WIDGET_PTR(mainwin->folderview));
                gtk_widget_realize(folderwin);
+
                if (prefs_common.folderview_visible)
                        gtk_widget_show(folderwin);
        }
 
        if (type & SEPARATE_MESSAGE) {
+               static GdkGeometry msgwin_geometry;
+               
                messagewin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
                gtk_window_set_title(GTK_WINDOW(messagewin),
                                     _("Sylpheed - Message View"));
-               gtk_window_set_resizable(GTK_WINDOW(messagewin), TRUE);
+                                    
                gtk_window_move(GTK_WINDOW(messagewin), 
                                prefs_common.main_msgwin_x,
                                prefs_common.main_msgwin_y);
+
+               if (!msgwin_geometry.min_height) {
+                       msgwin_geometry.min_width = 320;
+                       msgwin_geometry.min_height = 200;
+               }
+               gtk_window_set_geometry_hints(GTK_WINDOW(messagewin), NULL,
+                                             &msgwin_geometry, GDK_HINT_MIN_SIZE);
+               
                gtk_widget_set_size_request(messagewin, 
                                            prefs_common.msgwin_width,
                                            prefs_common.msgwin_height);
+
                gtk_container_set_border_width(GTK_CONTAINER(messagewin),
                                               BORDER_WIDTH);
                g_signal_connect(G_OBJECT(messagewin), "delete_event",
@@ -2025,16 +2077,6 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
                mainwin->messageview->statusbar_cid = mainwin->messageview_cid;
        }
 
-       gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->folderview),
-                                   prefs_common.folderview_width,
-                                   prefs_common.folderview_height);
-       gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->summaryview),
-                                   prefs_common.summaryview_width,
-                                   prefs_common.summaryview_height);
-       gtk_widget_set_size_request(GTK_WIDGET_PTR(mainwin->messageview),
-                                   prefs_common.msgview_width,
-                                   prefs_common.msgview_height);
-
        switch (type) {
        case SEPARATE_NONE:
                hpaned = gtk_hpaned_new();
@@ -2138,6 +2180,13 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
                break;
        }
 
+       if (messageview_is_visible(mainwin->messageview))
+               gtk_arrow_set(GTK_ARROW(mainwin->summaryview->toggle_arrow),
+                             GTK_ARROW_DOWN, GTK_SHADOW_OUT);
+       else
+               gtk_arrow_set(GTK_ARROW(mainwin->summaryview->toggle_arrow),
+                             GTK_ARROW_UP, GTK_SHADOW_OUT);
+
        gtk_window_move(GTK_WINDOW(mainwin->window),
                        prefs_common.mainwin_x,
                        prefs_common.mainwin_y);
@@ -2168,9 +2217,9 @@ static void main_window_set_widgets(MainWindow *mainwin, SeparateType type)
        gtk_widget_set_sensitive(menuitem, ((type & SEPARATE_FOLDER) != 0));
        menuitem = gtk_item_factory_get_item
                (ifactory, "/View/Show or hide/Message view");
-       gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem),
-                                      (type & SEPARATE_MESSAGE) == 0 ? TRUE :
-                                      prefs_common.msgview_visible);
+       gtk_check_menu_item_set_active
+               (GTK_CHECK_MENU_ITEM(menuitem),
+                messageview_is_visible(mainwin->messageview));
 
        menuitem = gtk_item_factory_get_item
                (ifactory, "/View/Separate folder tree");
@@ -2240,13 +2289,13 @@ static gboolean toolbar_account_button_pressed(GtkWidget *widget,
 static void toolbar_child_attached(GtkWidget *widget, GtkWidget *child,
                                   gpointer data)
 {
-       gtk_widget_set_usize(child, 1, -1);
+       gtk_widget_set_size_request(child, 1, -1);
 }
 
 static void toolbar_child_detached(GtkWidget *widget, GtkWidget *child,
                                   gpointer data)
 {
-       gtk_widget_set_usize(child, -1, -1);
+       gtk_widget_set_size_request(child, -1, -1);
 }
 
 static gboolean ac_label_button_pressed(GtkWidget *widget, GdkEventButton *event,
@@ -2803,7 +2852,9 @@ static void delete_duplicated_all_cb(MainWindow *mainwin, guint action,
        struct DelDupsData data = {0, 0};
 
        folder_func_to_all_folders(deldup_all, &data);
-       alertpanel_notice(_("Deleted %d duplicate message(s) in %d folders.\n"),
+       alertpanel_notice(ngettext("Deleted %d duplicate message in %d folders.\n",
+                                  "Deleted %d duplicate messages in %d folders.\n",
+                                  data.dups),
                          data.dups, data.folders);
 }