[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