Add error handler from CW

Duane Clark dclark at akamail.com
Sun Jan 27 20:12:26 CST 2002


Modified files:
	dlls/x11drv		: x11drv_main.c

Log message:
	Codeweavers
	Add error handler to lock_tsx11.

-------------- next part --------------
Index: dlls/x11drv/x11drv_main.c
===================================================================
RCS file: /home/wine/wine/dlls/x11drv/x11drv_main.c,v
retrieving revision 1.47
diff -u -r1.47 x11drv_main.c
--- dlls/x11drv/x11drv_main.c	2001/11/30 23:15:32	1.47
+++ dlls/x11drv/x11drv_main.c	2002/01/28 00:19:39
@@ -102,11 +102,32 @@
  */
 static int error_handler(Display *display, XErrorEvent *error_evt)
 {
+  ERR("XERROR: code %d request %d minor %d xid %08lx\n",
+      error_evt->error_code,
+      error_evt->request_code,
+      error_evt->minor_code,
+      error_evt->resourceid);
+
     DebugBreak();  /* force an entry in the debugger */
     return 0;
 }
 
 /***********************************************************************
+ *		empty_error_handler
+ */
+static int empty_error_handler(Display *display, XErrorEvent *error_evt)
+{
+    char buf[128];
+
+    wine_tsx11_lock();
+    XGetErrorText(display, error_evt->error_code, buf, 128);
+    wine_tsx11_unlock();
+
+    ERR("XID(%08lx): %s\n", error_evt->resourceid, buf);
+    return 0;
+}
+
+/***********************************************************************
  *		lock_tsx11
  */
 static void lock_tsx11(void)
@@ -333,6 +354,7 @@
         XSetErrorHandler( error_handler );
         XSynchronize( display, True );
     }
+    else XSetErrorHandler( empty_error_handler );
 
     screen_width  = WidthOfScreen( screen );
     screen_height = HeightOfScreen( screen );
@@ -403,6 +425,7 @@
     /* cleanup XVidMode */
     X11DRV_XF86VM_Cleanup();
 #endif
+    X11DRV_XRender_Finalize();
 
     /* FIXME: should detach all threads */
     thread_detach();


More information about the wine-patches mailing list