Index: vo_xv.c =================================================================== RCS file: /cvsroot/mplayer/main/libvo/vo_xv.c,v retrieving revision 1.134 diff -u -b -B -r1.134 vo_xv.c --- vo_xv.c 19 Jan 2003 16:52:00 -0000 1.134 +++ vo_xv.c 29 Jan 2003 18:01:15 -0000 @@ -386,7 +386,8 @@ 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_fs set means we were already at fullscreen + if ( !vo_fs ) XMoveResizeWindow( mDisplay,vo_window,hint.x,hint.y,hint.width,hint.height ); vo_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 ); @@ -434,7 +435,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 +446,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 );