summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nautilus-progress-persistence-handler.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/nautilus-progress-persistence-handler.c b/src/nautilus-progress-persistence-handler.c
index 77ffdcdd8..64f45e91d 100644
--- a/src/nautilus-progress-persistence-handler.c
+++ b/src/nautilus-progress-persistence-handler.c
@@ -169,22 +169,26 @@ static void
progress_info_finished_cb (NautilusProgressInfo *info,
NautilusProgressPersistenceHandler *self)
{
- GList *windows;
+ GtkWindow *last_active_window;
self->active_infos--;
- windows = nautilus_application_get_windows (self->app);
+ last_active_window = gtk_application_get_active_window (GTK_APPLICATION (self->app));
+
if (self->active_infos > 0)
{
- if (windows == NULL)
+ if (last_active_window == NULL)
{
progress_persistence_handler_update_notification (self);
}
}
- else if (windows == NULL)
+ else
{
- progress_persistence_handler_hide_notification (self);
- progress_persistence_handler_show_complete_notification (self);
+ if ((last_active_window == NULL) || !gtk_window_has_toplevel_focus (last_active_window))
+ {
+ progress_persistence_handler_hide_notification (self);
+ progress_persistence_handler_show_complete_notification (self);
+ }
}
}