[cogl/wip/quadbuffer-stereo: 4/7] examples/cogl-x11-tfp.c: Wait for the window to be mapped



commit 7bc44f750f1c46cd10ce5a2c09d4cda4b62554a0
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Sun Apr 27 00:07:53 2014 -0400

    examples/cogl-x11-tfp.c: Wait for the window to be mapped
    
    Wait for the main window (and hence the window we create within
    the main window to redirect) to be mapped and become viewable
    before we try to call XCompositeNameWindowPixmap() -
    XComposeNameWindowPixmap() produces a BadMatch error on a
    non-viewable window.

 examples/cogl-x11-tfp.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)
---
diff --git a/examples/cogl-x11-tfp.c b/examples/cogl-x11-tfp.c
index 91979a6..7d4d756 100644
--- a/examples/cogl-x11-tfp.c
+++ b/examples/cogl-x11-tfp.c
@@ -147,7 +147,8 @@ main (int argc, char **argv)
                                     DefaultRootWindow (xdpy),
                                     xvisinfo->visual,
                                     AllocNone);
-  mask = CWBorderPixel | CWColormap;
+  xattr.event_mask = StructureNotifyMask;
+  mask = CWBorderPixel | CWColormap | CWEventMask;
 
   xwin = XCreateWindow (xdpy,
                         DefaultRootWindow (xdpy),
@@ -179,6 +180,14 @@ main (int argc, char **argv)
 
   gc = XCreateGC (xdpy, tfp_xwin, 0, NULL);
 
+  while (TRUE)
+    {
+      XWindowEvent (xdpy, xwin, StructureNotifyMask, &xev);
+
+      if (xev.xany.type == MapNotify)
+        break;
+    }
+
   pixmap = XCompositeNameWindowPixmap (xdpy, tfp_xwin);
 
   tfp = cogl_texture_pixmap_x11_new (ctx, pixmap, TRUE, &error);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]