Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/cut-n-paste/totem-screensaver/totem-scrsaver.c
diff options
context:
space:
mode:
Diffstat (limited to 'cut-n-paste/totem-screensaver/totem-scrsaver.c')
-rw-r--r--cut-n-paste/totem-screensaver/totem-scrsaver.c37
1 files changed, 28 insertions, 9 deletions
diff --git a/cut-n-paste/totem-screensaver/totem-scrsaver.c b/cut-n-paste/totem-screensaver/totem-scrsaver.c
index 18c9431..1990b0c 100644
--- a/cut-n-paste/totem-screensaver/totem-scrsaver.c
+++ b/cut-n-paste/totem-screensaver/totem-scrsaver.c
@@ -188,13 +188,16 @@ gs_proxy_destroy_cb (GObject *proxy,
}
#endif
+#ifdef ENABLE_DBUS
static void
-screensaver_init_dbus (TotemScrsaver *scr)
+screensaver_init_dbus (TotemScrsaver *scr, DBusGConnection *connection)
{
-#ifdef ENABLE_DBUS
GError *error = NULL;
- scr->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (!connection)
+ scr->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ else
+ scr->priv->connection = connection;
if (! scr->priv->connection) {
if (error) {
@@ -218,8 +221,8 @@ screensaver_init_dbus (TotemScrsaver *scr)
}
-#endif /* ENABLE_DBUS */
}
+#endif /* ENABLE_DBUS */
static void
screensaver_finalize_dbus (TotemScrsaver *scr)
@@ -355,19 +358,35 @@ totem_scrsaver_class_init (TotemScrsaverClass *klass)
object_class->finalize = totem_scrsaver_finalize;
}
+#ifdef ENABLE_DBUS
+TotemScrsaver *
+totem_scrsaver_new (DBusGConnection *connection)
+{
+ TotemScrsaver * scr;
+ scr = TOTEM_SCRSAVER (g_object_new (TOTEM_TYPE_SCRSAVER, NULL));
+
+ screensaver_init_dbus (scr, connection);
+ screensaver_init_x11 (scr);
+
+ return scr;
+}
+#else
TotemScrsaver *
-totem_scrsaver_new (void)
+totem_scrsaver_new()
{
- return TOTEM_SCRSAVER (g_object_new (TOTEM_TYPE_SCRSAVER, NULL));
+ TotemScrsaver * scr;
+ scr = TOTEM_SCRSAVER (g_object_new (TOTEM_TYPE_SCRSAVER, NULL));
+
+ screensaver_init_x11 (scr);
+
+ return scr;
}
+#endif
static void
totem_scrsaver_init (TotemScrsaver *scr)
{
scr->priv = g_new0 (TotemScrsaverPrivate, 1);
-
- screensaver_init_dbus (scr);
- screensaver_init_x11 (scr);
}
void