mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-02 09:38:22 +02:00
boilerplate-xcb: Ignore MappingNotify events
The boilerplate code makes sure that our tests didn't cause any X11 errors or X11 events, because those might confuse API users. However, when the keyboard layout changes, every connection gets a MappingNotify event. This means that the test and performance test suites failed when the keyboard layout was changed while they are running. Fix this by ignoring MappingNotifies. Reported by Arthur Huillet on IRC. Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
parent
9d9aa04b60
commit
000a137a65
1 changed files with 8 additions and 2 deletions
|
|
@ -46,9 +46,15 @@ typedef struct _xcb_target_closure {
|
|||
static cairo_status_t
|
||||
_cairo_boilerplate_xcb_handle_errors (xcb_target_closure_t *xtc)
|
||||
{
|
||||
xcb_generic_event_t *ev;
|
||||
xcb_generic_event_t *ev = NULL;
|
||||
|
||||
if ((ev = xcb_poll_for_event (xtc->c)) != NULL) {
|
||||
/* Ignore all MappingNotify events; those might happen without us causing them */
|
||||
do {
|
||||
free(ev);
|
||||
ev = xcb_poll_for_event(xtc->c);
|
||||
} while (ev != NULL && ev->response_type == XCB_MAPPING_NOTIFY);
|
||||
|
||||
if (ev != NULL) {
|
||||
if (ev->response_type == CAIRO_XCB_ERROR) {
|
||||
xcb_generic_error_t *error = (xcb_generic_error_t *) ev;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue