X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=cut-n-paste%2Ftotem-screensaver%2Ftotem-scrsaver.c;h=0339171cecbf214a663a8a029f1c17bd04a6738b;hb=f58670288f5b717267a5487ebf81cba52dc253d2;hp=5d5a1f26743db23296f09aff202a1b10982e88a3;hpb=949bd66322de613217672824798fbc7973c8b314;p=evince.git diff --git a/cut-n-paste/totem-screensaver/totem-scrsaver.c b/cut-n-paste/totem-screensaver/totem-scrsaver.c index 5d5a1f26..0339171c 100644 --- a/cut-n-paste/totem-screensaver/totem-scrsaver.c +++ b/cut-n-paste/totem-screensaver/totem-scrsaver.c @@ -24,12 +24,17 @@ #include "config.h" #include + +#include + +#ifdef GDK_WINDOWING_X11 #include +#include #ifdef HAVE_XTEST #include #endif /* HAVE_XTEST */ -#include +#endif /* GDK_WINDOWING_X11 */ #ifdef ENABLE_DBUS #include @@ -69,7 +74,7 @@ struct TotemScrsaverPrivate { /* For use with XTest */ int keycode1, keycode2; int *keycode; - Bool have_xtest; + gboolean have_xtest; }; G_DEFINE_TYPE(TotemScrsaver, totem_scrsaver, G_TYPE_OBJECT) @@ -189,13 +194,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 +227,8 @@ screensaver_init_dbus (TotemScrsaver *scr) } -#endif /* ENABLE_DBUS */ } +#endif /* ENABLE_DBUS */ static void screensaver_finalize_dbus (TotemScrsaver *scr) @@ -232,12 +240,13 @@ screensaver_finalize_dbus (TotemScrsaver *scr) #endif /* ENABLE_DBUS */ } +#ifdef GDK_WINDOWING_X11 static void screensaver_enable_x11 (TotemScrsaver *scr) { #ifdef HAVE_XTEST - if (scr->priv->have_xtest == True) + if (scr->priv->have_xtest != FALSE) { g_source_remove_by_user_data (scr); return; @@ -281,7 +290,7 @@ screensaver_disable_x11 (TotemScrsaver *scr) { #ifdef HAVE_XTEST - if (scr->priv->have_xtest == True) + if (scr->priv->have_xtest != FALSE) { XLockDisplay (GDK_DISPLAY()); XGetScreenSaver(GDK_DISPLAY(), &scr->priv->timeout, @@ -292,10 +301,10 @@ screensaver_disable_x11 (TotemScrsaver *scr) if (scr->priv->timeout != 0) { - g_timeout_add (scr->priv->timeout / 2 * 1000, - (GSourceFunc) fake_event, scr); + g_timeout_add_seconds (scr->priv->timeout / 2, + (GSourceFunc) fake_event, scr); } else { - g_timeout_add (XSCREENSAVER_MIN_TIMEOUT / 2 * 1000, + g_timeout_add_seconds (XSCREENSAVER_MIN_TIMEOUT / 2, (GSourceFunc) fake_event, scr); } @@ -320,8 +329,8 @@ screensaver_init_x11 (TotemScrsaver *scr) int a, b, c, d; XLockDisplay (GDK_DISPLAY()); - scr->priv->have_xtest = XTestQueryExtension (GDK_DISPLAY(), &a, &b, &c, &d); - if(scr->priv->have_xtest == True) + scr->priv->have_xtest = (XTestQueryExtension (GDK_DISPLAY(), &a, &b, &c, &d) == True); + if (scr->priv->have_xtest != FALSE) { scr->priv->keycode1 = XKeysymToKeycode (GDK_DISPLAY(), XK_Alt_L); if (scr->priv->keycode1 == 0) { @@ -345,6 +354,7 @@ screensaver_finalize_x11 (TotemScrsaver *scr) { g_source_remove_by_user_data (scr); } +#endif static void totem_scrsaver_class_init (TotemScrsaverClass *klass) @@ -356,24 +366,52 @@ totem_scrsaver_class_init (TotemScrsaverClass *klass) object_class->finalize = totem_scrsaver_finalize; } +#ifdef ENABLE_DBUS TotemScrsaver * -totem_scrsaver_new (void) +totem_scrsaver_new (DBusGConnection *connection) { - return TOTEM_SCRSAVER (g_object_new (TOTEM_TYPE_SCRSAVER, NULL)); + TotemScrsaver * scr; + scr = TOTEM_SCRSAVER (g_object_new (TOTEM_TYPE_SCRSAVER, NULL)); + + screensaver_init_dbus (scr, connection); +#ifdef GDK_WINDOWING_X11 + screensaver_init_x11 (scr); +#else +#warning Unimplemented +#endif + + return scr; } +#else +TotemScrsaver * +totem_scrsaver_new() +{ + TotemScrsaver * scr; + scr = TOTEM_SCRSAVER (g_object_new (TOTEM_TYPE_SCRSAVER, NULL)); + +#ifdef GDK_WINDOWING_X11 + screensaver_init_x11 (scr); +#else +#warning Unimplemented +#endif + + 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 totem_scrsaver_disable (TotemScrsaver *scr) { + g_return_if_fail (TOTEM_SCRSAVER (scr)); + if (scr->priv->disabled != FALSE) return; @@ -382,12 +420,19 @@ totem_scrsaver_disable (TotemScrsaver *scr) if (screensaver_is_running_dbus (scr) != FALSE) screensaver_disable_dbus (scr); else +#ifdef GDK_WINDOWING_X11 screensaver_disable_x11 (scr); +#else +#warning Unimplemented + {} +#endif } void totem_scrsaver_enable (TotemScrsaver *scr) { + g_return_if_fail (TOTEM_SCRSAVER (scr)); + if (scr->priv->disabled == FALSE) return; @@ -396,7 +441,12 @@ totem_scrsaver_enable (TotemScrsaver *scr) if (screensaver_is_running_dbus (scr) != FALSE) screensaver_enable_dbus (scr); else +#ifdef GDK_WINDOWING_X11 screensaver_enable_x11 (scr); +#else +#warning Unimplemented + {} +#endif } static void @@ -405,7 +455,12 @@ totem_scrsaver_finalize (GObject *object) TotemScrsaver *scr = TOTEM_SCRSAVER (object); screensaver_finalize_dbus (scr); +#ifdef GDK_WINDOWING_X11 screensaver_finalize_x11 (scr); +#else +#warning Unimplemented + {} +#endif g_free (scr->priv);