From de5347d0f2a82150a4788b63d06b5e91d5ebc27a Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Mon, 29 Mar 2021 12:03:35 +0200 Subject: [PATCH] xwayland: require xcb-icccm This dependency is already required by many other widely used X11 programs, such as i3, Qt, and other XWMs. So it should be available on most systems. X11 support can be pretty broken without xcb-icccm, with focus issues for instance. Let's just remove this --please-break-my-desktop footgun option. --- README.md | 2 +- include/wlr/config.h.in | 1 - include/xwayland/xwm.h | 3 --- meson.build | 1 - meson_options.txt | 1 - xwayland/meson.build | 2 +- xwayland/xwm.c | 18 +----------------- 7 files changed, 3 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index ef68170e7..0e2a28512 100644 --- a/README.md +++ b/README.md @@ -62,10 +62,10 @@ If you choose to enable X11 support: * xcb-composite * xcb-xfixes * xcb-xinput +* xcb-icccm * xcb-image * xcb-render * xcb-errors (optional, for improved error reporting) -* xcb-icccm (optional, for improved Xwayland introspection) Run these commands: diff --git a/include/wlr/config.h.in b/include/wlr/config.h.in index 3cec1f1a7..8a867ecec 100644 --- a/include/wlr/config.h.in +++ b/include/wlr/config.h.in @@ -11,7 +11,6 @@ #mesondefine WLR_HAS_XWAYLAND #mesondefine WLR_HAS_XCB_ERRORS -#mesondefine WLR_HAS_XCB_ICCCM #mesondefine WLR_HAS_XDG_FOREIGN diff --git a/include/xwayland/xwm.h b/include/xwayland/xwm.h index 245496448..32b3135bf 100644 --- a/include/xwayland/xwm.h +++ b/include/xwayland/xwm.h @@ -5,9 +5,6 @@ #include #include #include -#if WLR_HAS_XCB_ICCCM -#include -#endif #if WLR_HAS_XCB_ERRORS #include #endif diff --git a/meson.build b/meson.build index 012fed3af..f9281b41a 100644 --- a/meson.build +++ b/meson.build @@ -87,7 +87,6 @@ features = { 'x11-backend': false, 'xwayland': false, 'xcb-errors': false, - 'xcb-icccm': false, 'xdg-foreign': false, } diff --git a/meson_options.txt b/meson_options.txt index e4ff60193..d12861f45 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -2,7 +2,6 @@ option('logind', type: 'feature', value: 'auto', description: 'Enable support fo option('logind-provider', type: 'combo', choices: ['auto', 'systemd', 'elogind'], value: 'auto', description: 'Provider of logind support library') option('libseat', type: 'feature', value: 'auto', description: 'Enable support for rootless session via libseat') option('xcb-errors', type: 'feature', value: 'auto', description: 'Use xcb-errors util library') -option('xcb-icccm', type: 'feature', value: 'auto', description: 'Use xcb-icccm util library') option('xwayland', type: 'feature', value: 'auto', yield: true, description: 'Enable support for X11 applications') option('x11-backend', type: 'feature', value: 'auto', description: 'Enable X11 backend') option('examples', type: 'boolean', value: true, description: 'Build example applications') diff --git a/xwayland/meson.build b/xwayland/meson.build index a4b51bf24..09a7c6c2f 100644 --- a/xwayland/meson.build +++ b/xwayland/meson.build @@ -2,12 +2,12 @@ xwayland_libs = [] xwayland_required = [ 'xcb', 'xcb-composite', + 'xcb-icccm', 'xcb-render', 'xcb-xfixes', ] xwayland_optional = { 'xcb-errors': 'Required for printing X11 errors.', - 'xcb-icccm': 'Required for extended X11 window manager hints.', } msg = [] diff --git a/xwayland/xwm.c b/xwayland/xwm.c index 89459533a..b8e686d7e 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include "util/signal.h" #include "xwayland/xwm.h" @@ -563,7 +564,6 @@ static void read_surface_protocols(struct wlr_xwm *xwm, xsurface->protocols_len = atoms_len; } -#if WLR_HAS_XCB_ICCCM static void read_surface_hints(struct wlr_xwm *xwm, struct wlr_xwayland_surface *xsurface, xcb_get_property_reply_t *reply) { @@ -593,15 +593,7 @@ static void read_surface_hints(struct wlr_xwm *xwm, wlr_signal_emit_safe(&xsurface->events.set_hints, xsurface); } -#else -static void read_surface_hints(struct wlr_xwm *xwm, - struct wlr_xwayland_surface *xsurface, - xcb_get_property_reply_t *reply) { - // Do nothing -} -#endif -#if WLR_HAS_XCB_ICCCM static void read_surface_normal_hints(struct wlr_xwm *xwm, struct wlr_xwayland_surface *xsurface, xcb_get_property_reply_t *reply) { @@ -642,14 +634,6 @@ static void read_surface_normal_hints(struct wlr_xwm *xwm, xsurface->size_hints->max_height = -1; } } -#else -static void read_surface_normal_hints(struct wlr_xwm *xwm, - struct wlr_xwayland_surface *xsurface, - xcb_get_property_reply_t *reply) { - // Do nothing -} -#endif - #define MWM_HINTS_FLAGS_FIELD 0 #define MWM_HINTS_DECORATIONS_FIELD 2