diff options
author | Sebastien Bacher <seb128@ubuntu.com> | 2010-02-04 19:00:38 -0800 |
---|---|---|
committer | Sebastien Bacher <seb128@ubuntu.com> | 2010-02-04 19:00:38 -0800 |
commit | 050ef48d22ce3f4626eb11867fea14f0e8a0854e (patch) | |
tree | ed69171d22fa26aa06fd91feefacef1f9fd69974 /libindicator/indicator-service.c | |
parent | 717a085c50ac2e0b93ca9c79fdcf954eb9e253f6 (diff) | |
parent | 72ef75fa51c63e533ff2883bffc75bfc86a2c521 (diff) | |
download | libayatana-indicator-050ef48d22ce3f4626eb11867fea14f0e8a0854e.tar.gz libayatana-indicator-050ef48d22ce3f4626eb11867fea14f0e8a0854e.tar.bz2 libayatana-indicator-050ef48d22ce3f4626eb11867fea14f0e8a0854e.zip |
releasing version 0.3.2-0ubuntu10.3.2-0ubuntu1
Diffstat (limited to 'libindicator/indicator-service.c')
-rw-r--r-- | libindicator/indicator-service.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libindicator/indicator-service.c b/libindicator/indicator-service.c index e2ec6b2..fc3c7de 100644 --- a/libindicator/indicator-service.c +++ b/libindicator/indicator-service.c @@ -316,7 +316,12 @@ get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspe static gboolean timeout_no_watchers (gpointer data) { - g_signal_emit(G_OBJECT(data), signals[SHUTDOWN], 0, TRUE); + g_warning("No watchers, service timing out."); + if (g_getenv("INDICATOR_ALLOW_NO_WATCHERS") == NULL) { + g_signal_emit(G_OBJECT(data), signals[SHUTDOWN], 0, TRUE); + } else { + g_warning("\tblocked by environment variable."); + } return FALSE; } @@ -329,16 +334,23 @@ try_and_get_name_cb (DBusGProxy * proxy, guint status, GError * error, gpointer IndicatorService * service = INDICATOR_SERVICE(data); g_return_if_fail(service != NULL); + if (error != NULL) { + g_warning("Unable to send message to request name: %s", error->message); + g_signal_emit(G_OBJECT(data), signals[SHUTDOWN], 0, TRUE); + return; + } + if (status != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER && status != DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER) { /* The already owner seems like it shouldn't ever happen, but I have a hard time throwing an error on it as we did achieve our goals. */ + g_warning("Name request failed. Status returned: %d", status); g_signal_emit(G_OBJECT(data), signals[SHUTDOWN], 0, TRUE); return; } IndicatorServicePrivate * priv = INDICATOR_SERVICE_GET_PRIVATE(service); - priv->timeout = g_timeout_add(500, timeout_no_watchers, service); + priv->timeout = g_timeout_add_seconds(1, timeout_no_watchers, service); return; } |