diff options
Diffstat (limited to 'print-notifications-clear-in-stop.patch')
-rw-r--r-- | print-notifications-clear-in-stop.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/print-notifications-clear-in-stop.patch b/print-notifications-clear-in-stop.patch new file mode 100644 index 0000000..649defd --- /dev/null +++ b/print-notifications-clear-in-stop.patch @@ -0,0 +1,45 @@ +--- gnome-settings-daemon-40.0.1/plugins/print-notifications/gsd-print-notifications-manager.c ++++ gnome-settings-daemon-40.0.1/plugins/print-notifications/gsd-print-notifications-manager.c +@@ -1268,6 +1268,7 @@ scp_handler (GsdPrintNotificationsManage + kill (manager->scp_handler_pid, SIGHUP); + g_spawn_close_pid (manager->scp_handler_pid); + manager->scp_handler_spawned = FALSE; ++ manager->scp_handler_pid = -1; + } + } + +@@ -1636,8 +1636,10 @@ gsd_print_notifications_manager_stop (Gs + manager->check_source_id = 0; + } + +- if (manager->subscription_id >= 0) ++ if (manager->subscription_id >= 0) { + cancel_subscription (manager->subscription_id); ++ manager->subscription_id = -1; ++ } + + g_clear_pointer (&manager->printing_printers, g_hash_table_destroy); + +@@ -1649,6 +1651,7 @@ gsd_print_notifications_manager_stop (Gs + g_source_remove (data->timeout_id); + } + g_list_free_full (manager->timeouts, free_timeout_data); ++ manager->timeouts = NULL; + + for (tmp = manager->active_notifications; tmp; tmp = g_list_next (tmp)) { + reason_data = (ReasonData *) tmp->data; +@@ -1665,12 +1668,14 @@ gsd_print_notifications_manager_stop (Gs + } + } + g_list_free_full (manager->active_notifications, free_reason_data); ++ manager->active_notifications = NULL; + + for (tmp = manager->held_jobs; tmp; tmp = g_list_next (tmp)) { + job = (HeldJob *) tmp->data; + g_source_remove (job->timeout_id); + } + g_list_free_full (manager->held_jobs, free_held_job); ++ manager->held_jobs = NULL; + + scp_handler (manager, FALSE); + } |