Browse Source

Flush xcb connection after opening fullscreen window (#74)

We need to ensure that the window handle is valid, i. e. the window is
actually created and accessible, before returning.

This is necessary because we immediately fork after returning, and the
child process opens its own X11 connection and expects the window handle
to be valid.

Fixes #46
master
martin 9 years ago
committed by Michael Stapelberg
parent
commit
402254b575
  1. 4
      xcb.c

4
xcb.c

@ -10,6 +10,7 @@
#include <xcb/xcb.h> #include <xcb/xcb.h>
#include <xcb/xcb_image.h> #include <xcb/xcb_image.h>
#include <xcb/xcb_atom.h> #include <xcb/xcb_atom.h>
#include <xcb/xcb_aux.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdbool.h> #include <stdbool.h>
@ -150,6 +151,9 @@ xcb_window_t open_fullscreen_window(xcb_connection_t *conn, xcb_screen_t *scr, c
values[0] = XCB_STACK_MODE_ABOVE; values[0] = XCB_STACK_MODE_ABOVE;
xcb_configure_window(conn, win, XCB_CONFIG_WINDOW_STACK_MODE, values); xcb_configure_window(conn, win, XCB_CONFIG_WINDOW_STACK_MODE, values);
/* Ensure that the window is created and set up before returning */
xcb_aux_sync(conn);
return win; return win;
} }

Loading…
Cancel
Save