]> www.fi.muni.cz Git - evince.git/blobdiff - cut-n-paste/totem-screensaver/totem-scrsaver.c
2007-07-03 Jovan Naumovski <jovanna@svn.gnome.org> *mk.po: Updated Macedonian transla...
[evince.git] / cut-n-paste / totem-screensaver / totem-scrsaver.c
index 5d5a1f26743db23296f09aff202a1b10982e88a3..1990b0c11b5069978dc5b7d0dabce3693f5fc286 100644 (file)
@@ -32,7 +32,6 @@
 #include <X11/keysym.h>
 
 #ifdef ENABLE_DBUS
-#include <dbus/dbus.h>
 #include <dbus/dbus-glib.h>
 
 #define GS_SERVICE   "org.gnome.ScreenSaver"
@@ -189,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) {
@@ -219,8 +221,8 @@ screensaver_init_dbus (TotemScrsaver *scr)
 
        }
 
-#endif /* ENABLE_DBUS */
 }
+#endif /* ENABLE_DBUS */
 
 static void
 screensaver_finalize_dbus (TotemScrsaver *scr)
@@ -356,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