diff --git a/data/geany.glade b/data/geany.glade index 224c049371..f876b67a3d 100644 --- a/data/geany.glade +++ b/data/geany.glade @@ -7443,6 +7443,16 @@ + + + True + False + Show Statusbar + True + True + + + True diff --git a/src/callbacks.c b/src/callbacks.c index 86b3c52d52..38abbc6104 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -1228,6 +1228,15 @@ void on_menu_show_sidebar1_toggled(GtkCheckMenuItem *checkmenuitem, gpointer use ui_sidebar_show_hide(); } +void on_menu_show_statusbar1_toggled(GtkCheckMenuItem *checkmenuitem, gpointer user_data) +{ + if (ignore_callback) + return; + + interface_prefs.statusbar_visible = ! interface_prefs.statusbar_visible; + + ui_statusbar_showhide(interface_prefs.statusbar_visible); +} static void on_menu_write_unicode_bom1_toggled(GtkCheckMenuItem *checkmenuitem, gpointer user_data) { diff --git a/src/callbacks.h b/src/callbacks.h index c77b781a10..2b7a6db149 100644 --- a/src/callbacks.h +++ b/src/callbacks.h @@ -123,6 +123,8 @@ void on_menu_select_all1_activate(GtkMenuItem *menuitem, gpointer user_data); void on_menu_show_sidebar1_toggled(GtkCheckMenuItem *checkmenuitem, gpointer user_data); +void on_menu_show_statusbar1_toggled(GtkCheckMenuItem *checkmenuitem, gpointer user_data); + void on_menu_comment_line1_activate(GtkMenuItem *menuitem, gpointer user_data); void on_menu_uncomment_line1_activate(GtkMenuItem *menuitem, gpointer user_data); diff --git a/src/libmain.c b/src/libmain.c index 42a18c9b5b..bca7cd1064 100644 --- a/src/libmain.c +++ b/src/libmain.c @@ -186,6 +186,13 @@ static void apply_settings(void) gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(ui_lookup_widget(main_widgets.window, "menu_show_sidebar1")), FALSE); ignore_callback = FALSE; } + if (! interface_prefs.statusbar_visible) + { + ignore_callback = TRUE; + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(ui_lookup_widget(main_widgets.window, "menu_show_statusbar1")), FALSE); + ignore_callback = FALSE; + } + toolbar_apply_settings(); toolbar_update_ui(); diff --git a/src/prefs.c b/src/prefs.c index cfdcb190ac..c78242b042 100644 --- a/src/prefs.c +++ b/src/prefs.c @@ -932,6 +932,9 @@ on_prefs_dialog_response(GtkDialog *dialog, gint response, gpointer user_data) widget = ui_lookup_widget(ui_widgets.prefs_dialog, "check_sidebar_visible"); ui_prefs.sidebar_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); + widget = ui_lookup_widget(ui_widgets.prefs_dialog, "check_statusbar_visible"); + interface_prefs.statusbar_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); + widget = ui_lookup_widget(ui_widgets.prefs_dialog, "check_list_symbol"); interface_prefs.sidebar_symbol_visible = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); diff --git a/src/ui_utils.c b/src/ui_utils.c index 22ab68a1ec..6aa3f651ce 100644 --- a/src/ui_utils.c +++ b/src/ui_utils.c @@ -885,6 +885,7 @@ static void init_document_widgets(void) add_doc_widget("menu_show_white_space1"); add_doc_widget("menu_show_line_endings1"); add_doc_widget("menu_show_indentation_guides1"); + add_doc_widget("menu_show_statusbar"); add_doc_widget("menu_zoom_in1"); add_doc_widget("menu_zoom_out1"); add_doc_widget("normal_size1"); @@ -1454,6 +1455,7 @@ void ui_update_view_editor_menu_items(void) gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(ui_lookup_widget(main_widgets.window, "menu_show_white_space1")), editor_prefs.show_white_space); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(ui_lookup_widget(main_widgets.window, "menu_show_line_endings1")), editor_prefs.show_line_endings); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(ui_lookup_widget(main_widgets.window, "menu_show_indentation_guides1")), editor_prefs.show_indent_guide); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(ui_lookup_widget(main_widgets.window, "menu_show_statusbar1")), interface_prefs.statusbar_visible); ignore_callback = FALSE; }