changeset 5981:25f0bf24fcf8

- the "black bars" in xv bug fixed (drwX=drwY=0) - -fsmode is working again - BaseSize flag for upscale-only Xv drivers (disabled now) patch by Tom Lees <tal26@cam.ac.uk>
author arpi
date Sun, 05 May 2002 15:33:50 +0000
parents 3b078401d610
children b61b22fbcd08
files libvo/vo_xv.c libvo/x11_common.c
diffstat 2 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/vo_xv.c	Sun May 05 11:08:59 2002 +0000
+++ b/libvo/vo_xv.c	Sun May 05 15:33:50 2002 +0000
@@ -402,7 +402,8 @@
     }
 //   dwidth=d_width; dheight=d_height; //XXX: what are the copy vars used for?
    vo_dwidth=d_width; vo_dheight=d_height;
-   hint.flags = PPosition | PSize;
+   hint.flags = PPosition | PSize /* | PBaseSize */;
+   hint.base_width = hint.width; hint.base_height = hint.height;
    XGetWindowAttributes(mDisplay, DefaultRootWindow(mDisplay), &attribs);
    depth=attribs.depth;
    if (depth != 15 && depth != 16 && depth != 24 && depth != 32) depth = 24;
@@ -433,6 +434,7 @@
 	))
    );
    XSetStandardProperties(mDisplay, vo_window, hello, hello, None, NULL, 0, &hint);
+   XSetWMNormalHints( mDisplay,vo_window,&hint );
    if ( vo_fs ) vo_x11_decoration( mDisplay,vo_window,0 );
    XMapWindow(mDisplay, vo_window);
 #ifdef HAVE_XINERAMA
@@ -553,6 +555,7 @@
  if(e&VO_EVENT_RESIZE)
   {
    XGetGeometry( mDisplay,vo_window,&mRoot,&drwX,&drwY,&vo_dwidth,&vo_dheight,&drwBorderWidth,&drwDepth );
+   drwX = drwY = 0;
    mp_msg(MSGT_VO,MSGL_V, "[xv] dx: %d dy: %d dw: %d dh: %d\n",drwX,drwY,vo_dwidth,vo_dheight );
 
    aspect(&dwidth,&dheight,A_NOZOOM);
--- a/libvo/x11_common.c	Sun May 05 11:08:59 2002 +0000
+++ b/libvo/x11_common.c	Sun May 05 15:33:50 2002 +0000
@@ -390,10 +390,9 @@
 
   if ( !WinID ) return;
 
-#if 0
   if(vo_fsmode&1){
     XSetWindowAttributes attr;
-    attr.override_redirect = True;
+    attr.override_redirect = (!d) ? True : False;
     XChangeWindowAttributes(vo_Display, w, CWOverrideRedirect, &attr);
 //    XMapWindow(vo_Display, w);
   }
@@ -401,7 +400,6 @@
   if(vo_fsmode&8){
     XSetTransientForHint (vo_Display, w, RootWindow(vo_Display,mScreen));
   }
-#endif
 
  vo_MotifHints=XInternAtom( vo_Display,"_MOTIF_WM_HINTS",0 );
  if ( vo_MotifHints != None )
@@ -588,16 +586,15 @@
    vo_fs=VO_TRUE;
    vo_old_x=vo_dx; vo_old_y=vo_dy; vo_old_width=vo_dwidth;   vo_old_height=vo_dheight;
    vo_dx=0;        vo_dy=0;        vo_dwidth=vo_screenwidth; vo_dheight=vo_screenheight;
-   vo_x11_decoration( mDisplay,vo_window,0 );
   }
   else
    {
     vo_fs=VO_FALSE;
     vo_dx=vo_old_x; vo_dy=vo_old_y; vo_dwidth=vo_old_width; vo_dheight=vo_old_height;
-    vo_x11_decoration( mDisplay,vo_window,1 );
    }
  vo_x11_sizehint( vo_dx,vo_dy,vo_dwidth,vo_dheight,0 );
  XMoveResizeWindow( mDisplay,vo_window,vo_dx,vo_dy,vo_dwidth,vo_dheight );
+ vo_x11_decoration( mDisplay,vo_window,(vo_fs) ? 0 : 1 );
  XMapRaised( mDisplay,vo_window );
  
  XRaiseWindow( mDisplay,vo_window );