Branch: refs/heads/master Author: Thomas Martitz thomas.martitz@mailbox.org Committer: Thomas Martitz thomas.martitz@mailbox.org Date: Thu, 17 Feb 2022 21:40:36 UTC Commit: a7647cd9a92c95a2b4b2bb611660ae53f0051099 https://github.com/geany/geany/commit/a7647cd9a92c95a2b4b2bb611660ae53f00510...
Log Message: ----------- Change main_status.opening_session_files to a counter
This flag is actually set and cleared recursively: - libmain.c sets it before calling load_startup_files() - inside load_startup_files(), configuration_open_files() sets and clears the flag - when libmain.c clears the flag, it's already unset
A counter allows such recursive usage to work as expected.
Modified Paths: -------------- src/keyfile.c src/libmain.c src/main.h
Modified: src/keyfile.c 8 lines changed, 5 insertions(+), 3 deletions(-) =================================================================== @@ -1317,7 +1317,7 @@ void configuration_open_files(void) gboolean failure = FALSE;
/* necessary to set it to TRUE for project session support */ - main_status.opening_session_files = TRUE; + main_status.opening_session_files++;
i = file_prefs.tab_order_ltr ? 0 : (session_files->len - 1); while (TRUE) @@ -1350,7 +1350,10 @@ void configuration_open_files(void) session_files = NULL;
if (failure) + { ui_set_statusbar(TRUE, _("Failed to load one or more session files.")); + main_status.opening_session_files--; + } else { /* explicitly trigger a notebook page switch after unsetting main_status.opening_session_files @@ -1363,10 +1366,9 @@ void configuration_open_files(void) if (target_page == cur_page && n_pages > 0) gtk_notebook_set_current_page(GTK_NOTEBOOK(main_widgets.notebook), (cur_page + 1) % n_pages);
- main_status.opening_session_files = FALSE; + main_status.opening_session_files--; gtk_notebook_set_current_page(GTK_NOTEBOOK(main_widgets.notebook), target_page); } - main_status.opening_session_files = FALSE; }
Modified: src/libmain.c 6 lines changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -263,7 +263,7 @@ static void main_init(void) ignore_callback = FALSE; ui_prefs.recent_queue = g_queue_new(); ui_prefs.recent_projects_queue = g_queue_new(); - main_status.opening_session_files = FALSE; + main_status.opening_session_files = 0;
main_widgets.window = create_window1(); g_signal_connect(main_widgets.window, "notify::is-active", G_CALLBACK(on_window_active_changed), NULL); @@ -1194,9 +1194,9 @@ gint main_lib(gint argc, gchar **argv) tools_create_insert_custom_command_menu_items();
/* load any command line files or session files */ - main_status.opening_session_files = TRUE; + main_status.opening_session_files++; load_startup_files(argc, argv); - main_status.opening_session_files = FALSE; + main_status.opening_session_files--;
/* open a new file if no other file was opened */ document_new_file_if_non_open();
Modified: src/main.h 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -53,7 +53,7 @@ extern CommandLineOptions cl_options;
typedef struct GeanyStatus { - gboolean opening_session_files; /* state at startup while opening session files */ + gint opening_session_files; /* >0 indicates batch-opening of session files */ gboolean closing_all; /* the state while closing all tabs * (used to prevent notebook switch page signals) */ gboolean quitting; /* state when Geany is quitting completely */
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).