summaryrefslogtreecommitdiff
path: root/print-notifications-clear-in-stop.patch
diff options
context:
space:
mode:
Diffstat (limited to 'print-notifications-clear-in-stop.patch')
-rw-r--r--print-notifications-clear-in-stop.patch45
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);
+ }