diff options
Diffstat (limited to 'cut-n-paste/totem-screensaver/totem-scrsaver.c')
-rw-r--r-- | cut-n-paste/totem-screensaver/totem-scrsaver.c | 37 |
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 |