changeset 2094:dc11de07b5e7

grabs mouse with -vm - patch by Uwe Reder <Uwe.Reder@3SOFT.de>
author arpi
date Fri, 05 Oct 2001 16:07:17 +0000
parents d2bed9c43e3b
children 340f3a4089cb
files libvo/vo_x11.c
diffstat 1 files changed, 34 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/vo_x11.c	Fri Oct 05 13:39:43 2001 +0000
+++ b/libvo/vo_x11.c	Fri Oct 05 16:07:17 2001 +0000
@@ -149,6 +149,7 @@
  Colormap theCmap;
  XSetWindowAttributes xswa;
  unsigned long xswamask;
+ unsigned int modeline_width, modeline_height;
 
  image_height=height;
  image_width=width;
@@ -182,7 +183,7 @@
 
 #ifdef HAVE_XF86VM
     if (vm) {
-        unsigned int modeline_width, modeline_height, vm_event, vm_error;
+        unsigned int vm_event, vm_error;
 	unsigned int vm_ver, vm_rev;
         int i,j,have_vm=0,X,Y;
 
@@ -226,7 +227,16 @@
   }
 #endif
 
-
+#ifdef HAVE_XF86VM
+    if ( vm )
+     {
+      hint.x=(vo_screenwidth-modeline_width)/2;
+      hint.y=(vo_screenheight-modeline_height)/2;
+      hint.width=modeline_width;
+      hint.height=modeline_height;
+     }
+    else
+#endif
     if ( fullscreen )
      {
       hint.width=vo_screenwidth;
@@ -243,14 +253,23 @@
     vinfo.visual,AllocNone );
 
     xswa.background_pixel=0;
-    xswa.border_pixel=1;
+    xswa.border_pixel=0;
     xswa.colormap=theCmap;
-    xswamask=CWBackPixel | CWBorderPixel |CWColormap;
+    xswamask=CWBackPixel | CWBorderPixel | CWColormap;
 
+#ifdef HAVE_XF86VM
+    if ( vm )
+     {
+      xswa.override_redirect=True;
+      xswamask|=CWOverrideRedirect;
+     }
+#endif
+ 
     mywindow=XCreateWindow( mDisplay,RootWindow( mDisplay,mScreen ),
                          hint.x,hint.y,
                          hint.width,hint.height,
                          xswa.border_pixel,depth,CopyFromParent,vinfo.visual,xswamask,&xswa );
+
     vo_x11_classhint( mDisplay,mywindow,"x11" );
     vo_hidecursor(mDisplay,mywindow);
     if ( fullscreen ) vo_x11_decoration( mDisplay,mywindow,0 );
@@ -262,8 +281,18 @@
 
     XFlush( mDisplay );
     XSync( mDisplay,False );
+    mygc=XCreateGC( mDisplay,mywindow,0L,&xgcv );
 
-    mygc=XCreateGC( mDisplay,mywindow,0L,&xgcv );
+#ifdef HAVE_XF86VM
+    if ( vm )
+     {
+      /* Grab the mouse pointer in our window */
+      XGrabPointer(mDisplay, mywindow, True, 0,
+                   GrabModeAsync, GrabModeAsync,
+                   mywindow, None, CurrentTime);
+      XSetInputFocus(mDisplay, mywindow, RevertToNone, CurrentTime);
+     }
+#endif
    }
 
 #ifdef SH_MEM