totem r5942 - in trunk: . src/plugins/screensaver



Author: hadess
Date: Tue Feb  3 17:11:42 2009
New Revision: 5942
URL: http://svn.gnome.org/viewvc/totem?rev=5942&view=rev

Log:
2009-02-03  Bastien Nocera  <hadess hadess net>

	* src/plugins/screensaver/totem-screensaver.c (got_metadata_cb),
	(impl_activate), (impl_deactivate): Also update the screensaver
	status when we get more metadata from the backend, as it's possible
	we don't detect there's a video stream when playing starts
	(Closes: #562847)



Modified:
   trunk/ChangeLog
   trunk/src/plugins/screensaver/totem-screensaver.c

Modified: trunk/src/plugins/screensaver/totem-screensaver.c
==============================================================================
--- trunk/src/plugins/screensaver/totem-screensaver.c	(original)
+++ trunk/src/plugins/screensaver/totem-screensaver.c	Tue Feb  3 17:11:42 2009
@@ -51,6 +51,7 @@
 {
 	TotemPlugin   parent;
 	TotemObject  *totem;
+	BaconVideoWidget *bvw;
 
 	TotemScrsaver *scr;
 	guint          handler_id_playing;
@@ -136,6 +137,12 @@
 }
 
 static void
+got_metadata_cb (BaconVideoWidget *bvw, TotemScreensaverPlugin *pi)
+{
+	totem_screensaver_update_from_state (pi->totem, pi);
+}
+
+static void
 lock_screensaver_on_audio_changed_cb (GConfClient *client, guint cnxn_id,
 				      GConfEntry *entry, TotemScreensaverPlugin *pi)
 {
@@ -150,6 +157,8 @@
 	TotemScreensaverPlugin *pi = TOTEM_SCREENSAVER_PLUGIN (plugin);
 	GConfClient *gc;
 
+	pi->bvw = BACON_VIDEO_WIDGET (totem_get_video_widget (totem));
+
 	gc = gconf_client_get_default ();
 	gconf_client_add_dir (gc, GCONF_PREFIX,
 			      GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
@@ -162,6 +171,10 @@
 				"notify::playing",
 				G_CALLBACK (property_notify_cb),
 				pi);
+	pi->handler_id_playing = g_signal_connect (G_OBJECT (pi->bvw),
+				"got-metadata",
+				G_CALLBACK (got_metadata_cb),
+				pi);
 
 	pi->totem = g_object_ref (totem);
 
@@ -185,6 +198,7 @@
 	g_signal_handler_disconnect (G_OBJECT (totem), pi->handler_id_playing);
 
 	g_object_unref (pi->totem);
+	g_object_unref (pi->bvw);
 
 	totem_scrsaver_enable (pi->scr);
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]