[Mplayer-cvslog] CVS: main/libvo vo_gl2.c,1.40,1.41

Reimar Döffinger CVS syncmail at mplayerhq.hu
Wed Mar 17 12:53:27 CET 2004


CVS change done by Reimar Döffinger CVS

Update of /cvsroot/mplayer/main/libvo
In directory mail:/var2/tmp/cvs-serv28850

Modified Files:
	vo_gl2.c 
Log Message:
corrected problems with switching to and from fullscreen mode esp. with fixed-vo


Index: vo_gl2.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_gl2.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- vo_gl2.c	22 Feb 2004 15:30:01 -0000	1.40
+++ vo_gl2.c	17 Mar 2004 11:53:25 -0000	1.41
@@ -677,23 +677,11 @@
 	XVisualInfo *vinfo, vinfo_buf;
 	XEvent xev;
 
-        if( flags&0x01 )
-        {
-	        vo_fs = VO_TRUE;
-                aspect(&d_width,&d_height,A_ZOOM);
-		hint.x = 0;
-		hint.y = 0;
-		hint.width = vo_screenwidth;
-		hint.height = vo_screenheight;
-		hint.flags = PPosition | PSize;
-        } else {
-		vo_fs = VO_FALSE;
 		hint.x = 0;
 		hint.y = 0;
 		hint.width = d_width;
 		hint.height = d_height;
 		hint.flags = PPosition | PSize;
-        }
 
 	/* Make the window */
 
@@ -709,9 +697,9 @@
 
   if ( vo_window == None ) 
    {
+    vo_fs = VO_FALSE;
     vo_window = vo_x11_create_smooth_window(mDisplay, RootWindow(mDisplay,mScreen), 
 		                            vinfo->visual, hint.x, hint.y, hint.width, hint.height, vinfo->depth, vo_x11_create_colormap(vinfo));
-  if ( flags&0x01 ) vo_x11_decoration( mDisplay,vo_window,0 );
 
 	XSelectInput(mDisplay, vo_window, StructureNotifyMask);
 
@@ -733,15 +721,26 @@
 		XNextEvent(mDisplay, &xev);
 	}
 	while (xev.type != MapNotify || xev.xmap.event != vo_window);
-
-	XSelectInput(mDisplay, vo_window, NoEventMask);
-
    }
    else {
    	vo_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 );
-   	if ( !(flags&1) ) XMoveResizeWindow( mDisplay,vo_window,hint.x,hint.y,hint.width,hint.height );
+   	// for changing from fullscreen to fullscreen we do fullscreen to
+   	// window and back to fullscreen, so that vo_x11_fullscreen saves
+   	// the correct size for _this_ video (and doesn't take the values from
+   	// the previous one)
+   	if (vo_fs)
+   	 vo_x11_fullscreen ();
+   	XMoveResizeWindow( mDisplay,vo_window,hint.x,hint.y,hint.width,hint.height );
    }
 
+  // these would normally be set by the event handler, but here we have to
+  // do it manually
+  vo_dwidth = d_width;
+  vo_dheight = d_height;
+
+  if (flags & VOFLAG_FULLSCREEN)
+   vo_x11_fullscreen();
+
   vo_x11_classhint( mDisplay,vo_window,"gl2" );
   vo_hidecursor(mDisplay,vo_window);
   
@@ -837,8 +836,6 @@
 
 	image_height = height;
 	image_width = width;
-    vo_dwidth = d_width;
-    vo_dheight = d_height;
 	image_format = format;
 
 	int_pause = 0;




More information about the MPlayer-cvslog mailing list