gnome-settings-daemon/0001-updates-deal-with-absence-of-gnome-session-gracefull.patch
2011-05-02 14:30:55 -04:00

45 lines
2.1 KiB
Diff

From 5de806c640d812041d0174307c628e0385c81561 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Mon, 2 May 2011 14:23:53 -0400
Subject: [PATCH] updates: deal with absence of gnome-session gracefully
This was leading to crashes when g-s-d got started under xfce.
---
plugins/updates/gsd-updates-refresh.c | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/plugins/updates/gsd-updates-refresh.c b/plugins/updates/gsd-updates-refresh.c
index 15e6917..60d5f80 100644
--- a/plugins/updates/gsd-updates-refresh.c
+++ b/plugins/updates/gsd-updates-refresh.c
@@ -560,7 +560,7 @@ gsd_updates_refresh_init (GsdUpdatesRefresh *refresh)
/* use gnome-session for the idle detection */
refresh->priv->proxy_session =
g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
- G_DBUS_PROXY_FLAGS_NONE,
+ G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
NULL, /* GDBusInterfaceInfo */
"org.gnome.SessionManager",
"/org/gnome/SessionManager/Presence",
@@ -578,9 +578,14 @@ gsd_updates_refresh_init (GsdUpdatesRefresh *refresh)
refresh);
status = g_dbus_proxy_get_cached_property (refresh->priv->proxy_session,
"status");
- g_variant_get (status, "u", &status_code);
- refresh->priv->session_idle = (status_code == PRESENCE_STATUS_IDLE);
- g_variant_unref (status);
+ if (status) {
+ g_variant_get (status, "u", &status_code);
+ refresh->priv->session_idle = (status_code == PRESENCE_STATUS_IDLE);
+ g_variant_unref (status);
+ }
+ else {
+ refresh->priv->session_idle = FALSE;
+ }
}
/* we check this in case we miss one of the async signals */
--
1.7.5