[geany/geany] a7647c: Change main_status.opening_session_files to a counter
Thomas Martitz
git-noreply at xxxxx
Fri Mar 4 23:03:24 UTC 2022
Branch: refs/heads/master
Author: Thomas Martitz <thomas.martitz at mailbox.org>
Committer: Thomas Martitz <thomas.martitz at mailbox.org>
Date: Thu, 17 Feb 2022 21:40:36 UTC
Commit: a7647cd9a92c95a2b4b2bb611660ae53f0051099
https://github.com/geany/geany/commit/a7647cd9a92c95a2b4b2bb611660ae53f0051099
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).
More information about the Commits
mailing list