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.
This commit is contained in:
Simon Ser 2021-03-29 12:03:35 +02:00 committed by Kenny Levinsen
parent 96aa18ae44
commit de5347d0f2
7 changed files with 3 additions and 25 deletions

View file

@ -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 = []

View file

@ -14,6 +14,7 @@
#include <wlr/xwayland.h>
#include <xcb/composite.h>
#include <xcb/render.h>
#include <xcb/xcb_icccm.h>
#include <xcb/xfixes.h>
#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