diff libvo/x11_common.c @ 4812:bad436339b03

setting vo_dx and vo_dy in event handling
author alex
date Fri, 22 Feb 2002 19:36:21 +0000
parents c39affa2b376
children 178b524e5213
line wrap: on
line diff
--- a/libvo/x11_common.c	Fri Feb 22 18:00:38 2002 +0000
+++ b/libvo/x11_common.c	Fri Feb 22 19:36:21 2002 +0000
@@ -47,7 +47,7 @@
 #define	SCAN_VISUALS
 
 
-extern verbose;
+extern int verbose;
 
 static int dpms_disabled=0;
 static int timeout_save=0;
@@ -144,7 +144,7 @@
 #define MSGLEN 60
     char msg[MSGLEN];
         
-    XGetErrorText(display, event->error_code, &msg, MSGLEN);
+    XGetErrorText(display, event->error_code, (char *)&msg, MSGLEN);
     
     printf("X11 error: %s\n", msg);
     
@@ -173,9 +173,18 @@
 
  if(vo_depthonscreen) return 1; // already called
 
+ XSetErrorHandler(x11_errorhandler);
+
+#if 0
  if (!mDisplayName)
    if (!(mDisplayName=getenv("DISPLAY")))
      mDisplayName=strdup(":0.0");
+#else
+ mDisplayName = XDisplayName(mDisplayName);
+#endif
+
+ if (verbose)
+    printf("X11 opening display: %s\n", mDisplayName);
 
  mDisplay=XOpenDisplay(mDisplayName);
  if ( !mDisplay )
@@ -264,8 +273,6 @@
 	vo_screenwidth,vo_screenheight,
 	depth, vo_depthonscreen,
 	mDisplayName,mLocalDisplay?"local":"remote");
-
- XSetErrorHandler(x11_errorhandler);
  
  return 1;
 }
@@ -445,6 +452,22 @@
       case ConfigureNotify:
            vo_dwidth=Event.xconfigure.width;
            vo_dheight=Event.xconfigure.height;
+#if 0
+	   /* when resizing, x and y are zero :( */
+	   vo_dx=Event.xconfigure.x;
+	   vo_dy=Event.xconfigure.y;
+#else
+	   {
+	    Window root;
+	    int foo;
+	    XGetGeometry(mydisplay, vo_window, &root, &foo, &foo, 
+		&foo/*width*/, &foo/*height*/, &foo, &foo);
+	    XTranslateCoordinates(mydisplay, vo_window, root, 0, 0,
+		&vo_dx, &vo_dy, (Window *)&foo);
+	    }
+#endif
+	   if (verbose)
+	    printf("X11 Window %dx%d-%dx%d\n", vo_dx, vo_dy, vo_dwidth, vo_dheight);
            ret|=VO_EVENT_RESIZE;
            break;
       case KeyPress: