# HG changeset patch # User arpi # Date 1043871901 0 # Node ID cedace61d1ad8e00fa7485d184bcdedd8a11cd6d # Parent 2a67f587c792332db846fdbaaf7432bb70a54c5a -fixed-vo vs. panscan vs. 'f' vs. -fs fix patch by Jindrich Makovicka diff -r 2a67f587c792 -r cedace61d1ad libvo/vo_xv.c --- a/libvo/vo_xv.c Wed Jan 29 17:23:23 2003 +0000 +++ b/libvo/vo_xv.c Wed Jan 29 20:25:01 2003 +0000 @@ -385,10 +385,17 @@ #ifdef HAVE_XINERAMA vo_x11_xinerama_move(mDisplay,vo_window); #endif - } else - if ( !(flags&1) ) XMoveResizeWindow( mDisplay,vo_window,hint.x,hint.y,hint.width,hint.height ); - - vo_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 ); + vo_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 ); + } else { + // vo_fs set means we were already at fullscreen + vo_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 ); + if ( !vo_fs ) XMoveResizeWindow( mDisplay,vo_window,hint.x,hint.y,hint.width,hint.height ); + if ( flags&1 && !vo_fs ) vo_x11_fullscreen(); // handle -fs on non-first file + } + +// vo_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 ); + + printf("\n!!!!!! %d;%d %dx%d \n",hint.x,hint.y,hint.width,hint.height); if ( vo_gc != None ) XFreeGC( mDisplay,vo_gc ); vo_gc = XCreateGC(mDisplay, vo_window, 0L, &xgcv); @@ -434,7 +441,7 @@ #endif aspect(&vo_dwidth,&vo_dheight,A_NOZOOM); - if ( ( flags&1 )&&( WinID <= 0 ) ) + if ( (( flags&1 )&&( WinID <= 0 )) || vo_fs ) { aspect(&vo_dwidth,&vo_dheight,A_ZOOM); drwX=( vo_screenwidth - (vo_dwidth > vo_screenwidth?vo_screenwidth:vo_dwidth) ) / 2; @@ -445,6 +452,19 @@ } panscan_calc(); + XClearWindow(mDisplay, vo_window); +#ifdef HAVE_SHM + if ( Shmem_Flag ) + { + XvShmPutImage(mDisplay, xv_port, vo_window, vo_gc, xvimage[current_buf], 0, 0, image_width, image_height, drwX, drwY, 1, 1, False); + XvShmPutImage(mDisplay, xv_port, vo_window, vo_gc, xvimage[current_buf], 0, 0, image_width, image_height, drwX,drwY,vo_dwidth,(vo_fs?vo_dheight - 1:vo_dheight), False); + } + else +#endif + { + XvPutImage(mDisplay, xv_port, vo_window, vo_gc, xvimage[current_buf], 0, 0, image_width, image_height, drwX, drwY, 1, 1); + XvPutImage(mDisplay, xv_port, vo_window, vo_gc, xvimage[current_buf], 0, 0, image_width, image_height, drwX,drwY,vo_dwidth,(vo_fs?vo_dheight - 1:vo_dheight)); + } mp_msg(MSGT_VO,MSGL_V, "[xv] dx: %d dy: %d dw: %d dh: %d\n",drwX,drwY,vo_dwidth,vo_dheight );