fix bug 4239, 'Preferences: Text Options Header Display modal is not modal' (sic)
[claws.git] / src / prefs_summaries.c
index 68225e138901787ae47b529173d2542ea5abdbf8..2ffe1dbc589cd21c82bfd62427f60ec08adca44c 100644 (file)
@@ -82,6 +82,7 @@ typedef struct _SummariesPage
        GtkWidget *checkbtn_folder_default_hide_read_threads;
        GtkWidget *checkbtn_folder_default_hide_read_msgs;
        GtkWidget *checkbtn_folder_default_hide_del_msgs;
+       GtkWidget *checkbtn_summary_col_lock;
 
 } SummariesPage;
 
@@ -203,6 +204,7 @@ static GtkWidget *date_format_create(GtkButton *button, void *data)
        gtk_container_set_border_width(GTK_CONTAINER(datefmt_win), 8);
        gtk_window_set_title(GTK_WINDOW(datefmt_win), _("Date format"));
        gtk_window_set_position(GTK_WINDOW(datefmt_win), GTK_WIN_POS_CENTER);
+       gtk_window_set_type_hint(GTK_WINDOW(datefmt_win), GDK_WINDOW_TYPE_HINT_DIALOG);
        gtk_widget_set_size_request(datefmt_win, 440, 280);
 
        vbox1 = gtk_vbox_new(FALSE, 10);
@@ -337,7 +339,6 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        GtkWidget *label_datefmt;
        GtkWidget *button_datefmt;
        GtkWidget *entry_datefmt;
-       GtkWidget *hbox_dispitem;
        GtkWidget *button_dispitem;
        GtkWidget *checkbtn_reopen_last_folder;
        GtkWidget *checkbtn_always_show_msg;
@@ -365,6 +366,7 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        GtkWidget *checkbtn_folder_default_hide_read_threads;
        GtkWidget *checkbtn_folder_default_hide_read_msgs;
        GtkWidget *checkbtn_folder_default_hide_del_msgs;
+       GtkWidget *checkbtn_summary_col_lock;
 
        notebook = gtk_notebook_new();
        gtk_widget_show(notebook);
@@ -375,16 +377,16 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox1,
                                 gtk_label_new(_("Folder list")));
        
-       hbox_dispitem = gtk_hbox_new (FALSE, 8);
-       gtk_widget_show (hbox_dispitem);
-       gtk_box_pack_start(GTK_BOX(vbox1), hbox_dispitem, FALSE, TRUE, 0);
+       hbox0 = gtk_hbox_new (FALSE, 8);
+       gtk_widget_show (hbox0);
+       gtk_box_pack_start(GTK_BOX(vbox1), hbox0, FALSE, TRUE, 0);
 
        label = gtk_label_new(_("Displayed columns"));
        gtk_widget_show(label);
-       gtk_box_pack_start(GTK_BOX(hbox_dispitem), label, FALSE, FALSE, 0);
+       gtk_box_pack_start(GTK_BOX(hbox0), label, FALSE, FALSE, 0);
        button_dispitem = gtk_button_new_from_stock(GTK_STOCK_EDIT);
        gtk_widget_show (button_dispitem);
-       gtk_box_pack_start (GTK_BOX (hbox_dispitem), button_dispitem, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX (hbox0), button_dispitem, FALSE, FALSE, 0);
        g_signal_connect (G_OBJECT (button_dispitem), "clicked",
                          G_CALLBACK (prefs_folder_column_open),
                          NULL);
@@ -440,20 +442,23 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox1,
                                 gtk_label_new(_("Message list")));
 
-       hbox_dispitem = gtk_hbox_new (FALSE, 8);
-       gtk_widget_show (hbox_dispitem);
-       gtk_box_pack_start(GTK_BOX(vbox1), hbox_dispitem, FALSE, TRUE, 0);
+       hbox0 = gtk_hbox_new (FALSE, 8);
+       gtk_widget_show (hbox0);
+       gtk_box_pack_start(GTK_BOX(vbox1), hbox0, FALSE, TRUE, 0);
        
        label = gtk_label_new(_("Displayed columns"));
        gtk_widget_show(label);
-       gtk_box_pack_start(GTK_BOX(hbox_dispitem), label, FALSE, FALSE, 0);
+       gtk_box_pack_start(GTK_BOX(hbox0), label, FALSE, FALSE, 0);
        button_dispitem = gtk_button_new_from_stock(GTK_STOCK_EDIT);
        gtk_widget_show (button_dispitem);
-       gtk_box_pack_start (GTK_BOX (hbox_dispitem), button_dispitem, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX (hbox0), button_dispitem, FALSE, FALSE, 0);
        g_signal_connect (G_OBJECT (button_dispitem), "clicked",
                          G_CALLBACK (prefs_summary_column_open),
                          NULL);
 
+       PACK_SPACER(hbox0, hbox1, 4);
+       PACK_CHECK_BUTTON(hbox0, checkbtn_summary_col_lock, _("Lock column headers"));
+
        hbox2 = gtk_hbox_new (FALSE, 8);
        gtk_widget_show (hbox2);
        gtk_box_pack_start (GTK_BOX (vbox1), hbox2, FALSE, TRUE, 0);
@@ -676,6 +681,7 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        prefs_summaries->checkbtn_folder_default_hide_read_threads = checkbtn_folder_default_hide_read_threads;
        prefs_summaries->checkbtn_folder_default_hide_read_msgs = checkbtn_folder_default_hide_read_msgs;
        prefs_summaries->checkbtn_folder_default_hide_del_msgs = checkbtn_folder_default_hide_del_msgs;
+       prefs_summaries->checkbtn_summary_col_lock = checkbtn_summary_col_lock;
 
        prefs_summaries->page.widget = vbox1;
        g_signal_connect(G_OBJECT(checkbtn_always_show_msg), "toggled",
@@ -744,6 +750,8 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
                        prefs_common.folder_default_hide_read_msgs);
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_folder_default_hide_del_msgs),
                        prefs_common.folder_default_hide_del_msgs);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_summary_col_lock),
+                       prefs_common.summary_col_lock);
 
        gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), 0);
                
@@ -796,6 +804,8 @@ static void prefs_summaries_save(PrefsPage *_page)
                GTK_TOGGLE_BUTTON(page->checkbtn_ask_override_colorlabel));
        prefs_common.mark_as_read_delay = gtk_spin_button_get_value_as_int(
                        GTK_SPIN_BUTTON(page->spinbtn_mark_as_read_delay));
+       prefs_common.summary_col_lock = gtk_toggle_button_get_active(
+               GTK_TOGGLE_BUTTON(page->checkbtn_summary_col_lock));
 
        prefs_common.default_sort_key = combobox_get_active_data(
                        GTK_COMBO_BOX(page->optmenu_sort_key));
@@ -803,6 +813,19 @@ static void prefs_summaries_save(PrefsPage *_page)
                        GTK_COMBO_BOX(page->optmenu_sort_type));
        prefs_common.next_unread_msg_dialog = combobox_get_active_data(
                        GTK_COMBO_BOX(page->optmenu_nextunreadmsgdialog));
+       prefs_common.folder_default_thread =  gtk_toggle_button_get_active(
+                       GTK_TOGGLE_BUTTON(page->checkbtn_folder_default_thread));
+       prefs_common.folder_default_thread_collapsed =  gtk_toggle_button_get_active(
+                       GTK_TOGGLE_BUTTON(page->checkbtn_folder_default_thread_collapsed));
+       prefs_common.folder_default_hide_read_threads =  gtk_toggle_button_get_active(
+                       GTK_TOGGLE_BUTTON(page->checkbtn_folder_default_hide_read_threads));
+       prefs_common.folder_default_hide_read_msgs =  gtk_toggle_button_get_active(
+                       GTK_TOGGLE_BUTTON(page->checkbtn_folder_default_hide_read_msgs));
+       prefs_common.folder_default_hide_del_msgs =  gtk_toggle_button_get_active(
+                       GTK_TOGGLE_BUTTON(page->checkbtn_folder_default_hide_del_msgs));
+       prefs_common.folder_default_hide_del_msgs =  gtk_toggle_button_get_active(
+                       GTK_TOGGLE_BUTTON(page->checkbtn_folder_default_hide_del_msgs));
+
        main_window_reflect_prefs_all();
 }