aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeandro Pereira <leandro@hardinfo.org>2020-05-13 22:42:22 -0700
committerLeandro Pereira <leandro@hardinfo.org>2020-05-13 22:42:22 -0700
commite50ea0a6d34b59e638ad30116d589bc7aa169f44 (patch)
treedf6180ffe7bbe0f70b5c90409e7d7c6f5d74732b
parenta19233d7013aad91d4cfa80d216070caa6a8c141 (diff)
Show "Benchmarking..." dialog on top of sync manager
-rw-r--r--includes/shell.h4
-rw-r--r--modules/benchmark.c2
-rw-r--r--shell/shell.c6
-rw-r--r--shell/syncmanager.c2
4 files changed, 13 insertions, 1 deletions
diff --git a/includes/shell.h b/includes/shell.h
index 3f0ef47e..522c1223 100644
--- a/includes/shell.h
+++ b/includes/shell.h
@@ -83,6 +83,8 @@ struct _Shell {
GtkWidget *notebook;
GtkWidget *hbox, *vpaned;
+ GtkWindow *transient_dialog;
+
ShellTree *tree;
ShellInfoTree *info_tree;
ShellModule *selected_module;
@@ -194,6 +196,8 @@ void shell_action_set_property(const gchar *action_name,
const gchar *property,
gboolean setting);
+void shell_set_transient_dialog(GtkWindow *dialog);
+
void shell_set_side_pane_visible(gboolean setting);
void shell_set_note_from_entry(ShellModuleEntry *entry);
void shell_ui_manager_set_visible(const gchar *path,
diff --git a/modules/benchmark.c b/modules/benchmark.c
index c8963a4f..c19295b2 100644
--- a/modules/benchmark.c
+++ b/modules/benchmark.c
@@ -694,7 +694,7 @@ static void do_benchmark(void (*benchmark_function)(void), int entry)
_("Benchmarking. Please do not move your mouse "
"or press any keys."));
gtk_window_set_transient_for(GTK_WINDOW(bench_dialog),
- GTK_WINDOW(shell_get_main_shell()->window));
+ GTK_WINDOW(shell_get_main_shell()->transient_dialog));
gtk_dialog_add_buttons(GTK_DIALOG(bench_dialog), _("Cancel"),
GTK_RESPONSE_ACCEPT, NULL);
diff --git a/shell/shell.c b/shell/shell.c
index 06e2f936..338e68f3 100644
--- a/shell/shell.c
+++ b/shell/shell.c
@@ -737,6 +737,11 @@ gboolean hardinfo_link(const gchar *uri) {
return FALSE; /* didn't handle it */
}
+void shell_set_transient_dialog(GtkWindow *dialog)
+{
+ shell->transient_dialog = dialog ? dialog : shell->window;
+}
+
void shell_init(GSList * modules)
{
if (shell) {
@@ -761,6 +766,7 @@ void shell_init(GSList * modules)
shell->info_tree = info_tree_new();
shell->loadgraph = load_graph_new(75);
shell->detail_view = detail_view_new();
+ shell->transient_dialog = shell->window;
update_tbl = g_hash_table_new_full(g_str_hash, g_str_equal,
g_free, destroy_update_tbl_value);
diff --git a/shell/syncmanager.c b/shell/syncmanager.c
index e2dabd7a..afe1930a 100644
--- a/shell/syncmanager.c
+++ b/shell/syncmanager.c
@@ -135,9 +135,11 @@ void sync_manager_show(GtkWidget *parent)
if (gtk_dialog_run(GTK_DIALOG(sd->dialog)) == GTK_RESPONSE_ACCEPT) {
shell_view_set_enabled(FALSE);
shell_status_set_enabled(TRUE);
+ shell_set_transient_dialog(sd->dialog);
sync_dialog_start_sync(sd);
+ shell_set_transient_dialog(NULL);
shell_status_set_enabled(FALSE);
shell_view_set_enabled(TRUE);
}