[gnome-settings-daemon] print-notifications: Regularly check for notifications from remote CUPS servers
- From: Marek Kašík <mkasik src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon] print-notifications: Regularly check for notifications from remote CUPS servers
- Date: Wed, 31 Jul 2013 15:16:33 +0000 (UTC)
commit 4880601129b1e291883559794e27d3c8371d14b4
Author: Marek Kasik <mkasik redhat com>
Date: Wed Jul 31 15:50:19 2013 +0200
print-notifications: Regularly check for notifications from remote CUPS servers
Get new notifications every 60 seconds if the CUPS server is a remote one.
https://bugzilla.gnome.org/show_bug.cgi?id=678623
.../gsd-print-notifications-manager.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/plugins/print-notifications/gsd-print-notifications-manager.c
b/plugins/print-notifications/gsd-print-notifications-manager.c
index 5e229c1..26c630e 100644
--- a/plugins/print-notifications/gsd-print-notifications-manager.c
+++ b/plugins/print-notifications/gsd-print-notifications-manager.c
@@ -52,6 +52,7 @@
#define CONNECTING_TIMEOUT 60
#define REASON_TIMEOUT 15000
#define CUPS_CONNECTION_TEST_INTERVAL 300
+#define CHECK_INTERVAL 60 /* secs */
#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
#define HAVE_CUPS_1_6 1
@@ -75,6 +76,7 @@ struct GsdPrintNotificationsManagerPrivate
GHashTable *printing_printers;
GList *active_notifications;
guint cups_connection_timeout_id;
+ guint check_source_id;
guint cups_dbus_subscription_id;
guint renew_source_id;
gint last_notify_sequence_number;
@@ -1177,6 +1179,7 @@ cups_connection_test_cb (GObject *source_object,
g_debug ("Got dests from remote CUPS server.");
renew_subscription_timeout_enable (manager, TRUE, TRUE);
+ manager->priv->check_source_id = g_timeout_add_seconds (CHECK_INTERVAL,
process_new_notifications, manager);
} else {
g_debug ("Test connection to CUPS server \'%s:%d\' failed.", cupsServer (), ippPort ());
if (manager->priv->cups_connection_timeout_id == 0)
@@ -1327,6 +1330,11 @@ gsd_print_notifications_manager_stop (GsdPrintNotificationsManager *manager)
renew_subscription_timeout_enable (manager, FALSE, FALSE);
+ if (manager->priv->check_source_id > 0) {
+ g_source_remove (manager->priv->check_source_id);
+ manager->priv->check_source_id = 0;
+ }
+
if (manager->priv->subscription_id >= 0)
cancel_subscription (manager->priv->subscription_id);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]