From f86e67d01f7f3fd9176834f472ce8d35bf50ab78 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Tue, 29 Nov 2016 12:03:35 +0000 Subject: [PATCH] compositor-x11: Remove support for ancient XCB We had two non-pkg-config check paths in the configure script, to support XCB functionality used before XCB had had an accompanying release: xcb_poll_for_queued_event (released in 1.8, 2012), and a usable XKB event mechanism (released in 1.9, 2013). Convert the former to a version-based hard dependency, and the latter to a version-based soft dependency. This avoids two compiler checks. Signed-off-by: Daniel Stone Reviewed-by: Quentin Glidic --- configure.ac | 21 ++------------------- libweston/compositor-x11.c | 9 ++------- 2 files changed, 4 insertions(+), 26 deletions(-) diff --git a/configure.ac b/configure.ac index 033f8964..9cad9036 100644 --- a/configure.ac +++ b/configure.ac @@ -185,28 +185,11 @@ AC_ARG_ENABLE(x11-compositor, [ --enable-x11-compositor],, AM_CONDITIONAL(ENABLE_X11_COMPOSITOR, test x$enable_x11_compositor = xyes) have_xcb_xkb=no if test x$enable_x11_compositor = xyes; then - PKG_CHECK_MODULES([XCB], xcb) - xcb_save_LIBS=$LIBS - xcb_save_CFLAGS=$CFLAGS - CFLAGS=$XCB_CFLAGS - LIBS=$XCB_LIBS - AC_CHECK_FUNCS([xcb_poll_for_queued_event]) - LIBS=$xcb_save_LIBS - CFLAGS=$xcb_save_CFLAGS - + PKG_CHECK_MODULES([XCB], xcb >= 1.8) X11_COMPOSITOR_MODULES="x11 x11-xcb xcb-shm" - PKG_CHECK_MODULES(X11_COMPOSITOR_XKB, [xcb-xkb], + PKG_CHECK_MODULES(X11_COMPOSITOR_XKB, [xcb-xkb >= 1.9], [have_xcb_xkb="yes"], [have_xcb_xkb="no"]) - if test "x$have_xcb_xkb" = xyes; then - # Most versions of XCB have totally broken XKB bindings, where the - # events don't work. Make sure we can actually use them. - xcb_xkb_save_CFLAGS=$CFLAGS - CFLAGS=$X11_COMPOSITOR_XKB_CFLAGS - AC_CHECK_MEMBER([struct xcb_xkb_state_notify_event_t.xkbType], - [], [have_xcb_xkb=no], [[#include ]]) - CFLAGS=$xcb_xkb_save_CFLAGS - fi if test "x$have_xcb_xkb" = xyes; then X11_COMPOSITOR_MODULES="$X11_COMPOSITOR_MODULES xcb-xkb" AC_DEFINE([HAVE_XCB_XKB], [1], [libxcb supports XKB protocol]) diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c index 34ef8546..627bb15f 100644 --- a/libweston/compositor-x11.c +++ b/libweston/compositor-x11.c @@ -1298,15 +1298,10 @@ static int x11_backend_next_event(struct x11_backend *b, xcb_generic_event_t **event, uint32_t mask) { - if (mask & WL_EVENT_READABLE) { + if (mask & WL_EVENT_READABLE) *event = xcb_poll_for_event(b->conn); - } else { -#ifdef HAVE_XCB_POLL_FOR_QUEUED_EVENT + else *event = xcb_poll_for_queued_event(b->conn); -#else - *event = xcb_poll_for_event(b->conn); -#endif - } return *event != NULL; }