[totem] screensaver: Use gtk_application_inhibit()
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [totem] screensaver: Use gtk_application_inhibit()
- Date: Wed, 28 Mar 2012 15:20:42 +0000 (UTC)
commit 1c9970511b8691012b284a5ae02190f4405e332c
Author: Bastien Nocera <hadess hadess net>
Date: Wed Mar 28 16:55:07 2012 +0200
screensaver: Use gtk_application_inhibit()
Instead of our custom screensaver inhibition code.
src/plugins/screensaver/Makefile.am | 13 ++------
src/plugins/screensaver/totem-screensaver.c | 46 ++++++++++++++-------------
2 files changed, 27 insertions(+), 32 deletions(-)
---
diff --git a/src/plugins/screensaver/Makefile.am b/src/plugins/screensaver/Makefile.am
index eb3bd4d..7f85376 100644
--- a/src/plugins/screensaver/Makefile.am
+++ b/src/plugins/screensaver/Makefile.am
@@ -7,15 +7,8 @@ plugin_in_files = screensaver.plugin.in
libscreensaver_la_SOURCES = totem-screensaver.c
libscreensaver_la_LDFLAGS = $(plugin_ldflags)
-libscreensaver_la_LIBADD = \
- $(plugin_libadd) \
- $(top_builddir)/lib/libtotemscrsaver.la \
- $(SCREENSAVER_LIBS)
-libscreensaver_la_CPPFLAGS = \
- $(AM_CPPFLAGS) \
- -I$(top_srcdir)/lib
-libscreensaver_la_CFLAGS = \
- $(plugin_cflags) \
- $(SCREENSAVER_CFLAGS)
+libscreensaver_la_LIBADD = $(plugin_libadd)
+libscreensaver_la_CPPFLAGS = $(AM_CPPFLAGS)
+libscreensaver_la_CFLAGS = $(plugin_cflags)
-include $(top_srcdir)/git.mk
diff --git a/src/plugins/screensaver/totem-screensaver.c b/src/plugins/screensaver/totem-screensaver.c
index 1a8e4f9..4de618c 100644
--- a/src/plugins/screensaver/totem-screensaver.c
+++ b/src/plugins/screensaver/totem-screensaver.c
@@ -37,7 +37,6 @@
#include "totem-plugin.h"
#include "totem.h"
-#include "totem-scrsaver.h"
#include "backend/bacon-video-widget.h"
#define TOTEM_TYPE_SCREENSAVER_PLUGIN (totem_screensaver_plugin_get_type ())
@@ -52,9 +51,9 @@ typedef struct {
BaconVideoWidget *bvw;
GSettings *settings;
- TotemScrsaver *scr;
guint handler_id_playing;
guint handler_id_metadata;
+ guint handler_id_inhibit;
} TotemScreensaverPluginPrivate;
TOTEM_PLUGIN_REGISTER(TOTEM_TYPE_SCREENSAVER_PLUGIN,
@@ -73,12 +72,24 @@ totem_screensaver_update_from_state (TotemObject *totem,
lock_screensaver_on_audio = g_settings_get_boolean (pi->priv->settings, "lock-screensaver-on-audio");
can_get_frames = bacon_video_widget_can_get_frames (bvw, NULL);
- if (totem_is_playing (totem) != FALSE && can_get_frames)
- totem_scrsaver_disable (pi->priv->scr);
- else if (totem_is_playing (totem) != FALSE && !lock_screensaver_on_audio)
- totem_scrsaver_disable (pi->priv->scr);
- else
- totem_scrsaver_enable (pi->priv->scr);
+ if ((totem_is_playing (totem) != FALSE && can_get_frames) ||
+ (totem_is_playing (totem) != FALSE && !lock_screensaver_on_audio)) {
+ if (pi->priv->handler_id_inhibit == 0) {
+ GtkWindow *window;
+
+ window = totem_get_main_window (totem);
+ pi->priv->handler_id_inhibit = gtk_application_inhibit (GTK_APPLICATION (totem),
+ window,
+ GTK_APPLICATION_INHIBIT_IDLE,
+ _(""));
+ g_object_unref (window);
+ }
+ } else {
+ if (pi->priv->handler_id_inhibit != 0) {
+ gtk_application_uninhibit (GTK_APPLICATION (pi->priv->totem), pi->priv->handler_id_inhibit);
+ pi->priv->handler_id_inhibit = 0;
+ }
+ }
}
static void
@@ -106,18 +117,8 @@ impl_activate (PeasActivatable *plugin)
{
TotemScreensaverPlugin *pi = TOTEM_SCREENSAVER_PLUGIN (plugin);
TotemObject *totem;
- GtkWindow *window;
totem = g_object_get_data (G_OBJECT (plugin), "object");
- window = totem_get_main_window (totem);
-
- pi->priv->scr = totem_scrsaver_new ();
- g_object_set (pi->priv->scr,
- "reason", _("Playing a movie"),
- "window", window,
- NULL);
- g_object_unref (window);
-
pi->priv->bvw = BACON_VIDEO_WIDGET (totem_get_video_widget (totem));
pi->priv->settings = g_settings_new (TOTEM_GSETTINGS_SCHEMA);
@@ -156,11 +157,12 @@ impl_deactivate (PeasActivatable *plugin)
pi->priv->handler_id_metadata = 0;
}
+ if (pi->priv->handler_id_inhibit != 0) {
+ gtk_application_uninhibit (GTK_APPLICATION (pi->priv->totem), pi->priv->handler_id_inhibit);
+ pi->priv->handler_id_inhibit = 0;
+ }
+
g_object_unref (pi->priv->totem);
g_object_unref (pi->priv->bvw);
-
- totem_scrsaver_enable (pi->priv->scr);
-
- g_object_unref (pi->priv->scr);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]