]> git.decadent.org.uk Git - ion3.git/blobdiff - ioncore/rootwin.c
Imported Upstream version 20090110
[ion3.git] / ioncore / rootwin.c
index f9b6905f29787db44c07e361812ecc8430825f69..c206e3d9587ac56ae55c1042f051a9a24b438435 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * ion/ioncore/rootwin.c
  *
- * Copyright (c) Tuomo Valkonen 1999-2007
+ * Copyright (c) Tuomo Valkonen 1999-2009
  *
  * See the included file LICENSE for details.
  */
@@ -59,9 +59,13 @@ static int my_error_handler(Display *dpy, XErrorEvent *ev)
     
     /* Just ignore bad window and similar errors; makes the rest of
      * the code simpler.
+     * 
+     * Apparently XGetWindowProperty can return BadMatch on a race
+     * condition where the server is already reusing the XID for a 
+     * non-window drawable, so let's just ignore BadMatch entirely...
      */
     if((ev->error_code==BadWindow ||
-        (ev->error_code==BadMatch && ev->request_code==X_SetInputFocus) ||
+        (ev->error_code==BadMatch /*&& ev->request_code==X_SetInputFocus*/) ||
         (ev->error_code==BadDrawable && ev->request_code==X_GetGeometry)) &&
        ignore_badwindow)
         return 0;