aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/shell.c6
-rw-r--r--shell/syncmanager.c2
2 files changed, 8 insertions, 0 deletions
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);
}