totem r5613 - in trunk: . src/backend



Author: hadess
Date: Thu Aug 28 14:21:10 2008
New Revision: 5613
URL: http://svn.gnome.org/viewvc/totem?rev=5613&view=rev

Log:
2008-08-28  Bastien Nocera  <hadess hadess net>

	* src/backend/bacon-video-widget-gst-0.10.c
	(bvw_handle_application_message), (bacon_video_widget_close):
	* src/backend/bacon-video-widget-xine.c (frame_output_cb),
	(bacon_video_widget_close):
	Never auto-resize a stream that's already been resized, wait for
	the next file to be opened to do that (Closes: #481944)



Modified:
   trunk/ChangeLog
   trunk/src/backend/bacon-video-widget-gst-0.10.c
   trunk/src/backend/bacon-video-widget-xine.c

Modified: trunk/src/backend/bacon-video-widget-gst-0.10.c
==============================================================================
--- trunk/src/backend/bacon-video-widget-gst-0.10.c	(original)
+++ trunk/src/backend/bacon-video-widget-gst-0.10.c	Thu Aug 28 14:21:10 2008
@@ -173,6 +173,8 @@
   
   gint                         video_width; /* Movie width */
   gint                         video_height; /* Movie height */
+  gboolean                     window_resized; /* Whether the window has already been resized
+						  for this media */
   const GValue                *movie_par; /* Movie pixel aspect ratio */
   gint                         video_width_pixels; /* Scaled movie width */
   gint                         video_height_pixels; /* Scaled movie height */
@@ -1169,7 +1171,9 @@
       g_signal_emit (bvw, bvw_signals[SIGNAL_GOT_METADATA], 0, NULL);
     }
 
-    if (bvw->priv->auto_resize && !bvw->priv->fullscreen_mode) {
+    if (bvw->priv->auto_resize
+       	&& !bvw->priv->fullscreen_mode
+	&& !bvw->priv->window_resized) {
       gint w, h;
 
       shrink_toplevel (bvw);
@@ -1189,6 +1193,7 @@
         bacon_video_widget_expose_event (GTK_WIDGET (bvw), NULL);
       }
     }
+    bvw->priv->window_resized = TRUE;
   } else {
     g_message ("Unhandled application message %s", msg_name);
   }
@@ -2968,6 +2973,7 @@
 
   g_free (bvw->com->mrl);
   bvw->com->mrl = NULL;
+  bvw->priv->window_resized = FALSE;
 
   g_object_notify (G_OBJECT (bvw), "seekable");
   g_signal_emit (bvw, bvw_signals[SIGNAL_CHANNELS_CHANGE], 0);

Modified: trunk/src/backend/bacon-video-widget-xine.c
==============================================================================
--- trunk/src/backend/bacon-video-widget-xine.c	(original)
+++ trunk/src/backend/bacon-video-widget-xine.c	Thu Aug 28 14:21:10 2008
@@ -209,6 +209,8 @@
 	guint bevent_consumed : 1;
 	guint fullscreen_mode : 1;
 	guint cursor_shown : 1;
+	/* Whether the window has already been resized for this media */
+	guint window_resized : 1;
 };
 
 static const char *mms_bandwidth_strs[] = {
@@ -606,10 +608,13 @@
 
 		if (bvw->priv->auto_resize != FALSE
 				&& bvw->priv->logo_mode == FALSE
-				&& bvw->priv->fullscreen_mode == FALSE)
+				&& bvw->priv->fullscreen_mode == FALSE
+				&& bvw->priv->window_resized == FALSE)
 		{
 			signal_data *data;
 
+			bvw->priv->window_resized = TRUE;
+
 			data = g_new0 (signal_data, 1);
 			data->signal = RATIO_ASYNC;
 			g_async_queue_push (bvw->priv->queue, data);
@@ -2706,6 +2711,7 @@
 	g_free (bvw->com->mrl);
 	bvw->com->mrl = NULL;
 	bvw->priv->stream_length = 0;
+	bvw->priv->window_resized = FALSE;
 
 	g_object_notify (G_OBJECT (bvw), "seekable");
 	bacon_video_widget_reconfigure_tick (bvw, FALSE);



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