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:
parent
96aa18ae44
commit
de5347d0f2
|
@ -62,10 +62,10 @@ If you choose to enable X11 support:
|
||||||
* xcb-composite
|
* xcb-composite
|
||||||
* xcb-xfixes
|
* xcb-xfixes
|
||||||
* xcb-xinput
|
* xcb-xinput
|
||||||
|
* xcb-icccm
|
||||||
* xcb-image
|
* xcb-image
|
||||||
* xcb-render
|
* xcb-render
|
||||||
* xcb-errors (optional, for improved error reporting)
|
* xcb-errors (optional, for improved error reporting)
|
||||||
* xcb-icccm (optional, for improved Xwayland introspection)
|
|
||||||
|
|
||||||
Run these commands:
|
Run these commands:
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
#mesondefine WLR_HAS_XWAYLAND
|
#mesondefine WLR_HAS_XWAYLAND
|
||||||
|
|
||||||
#mesondefine WLR_HAS_XCB_ERRORS
|
#mesondefine WLR_HAS_XCB_ERRORS
|
||||||
#mesondefine WLR_HAS_XCB_ICCCM
|
|
||||||
|
|
||||||
#mesondefine WLR_HAS_XDG_FOREIGN
|
#mesondefine WLR_HAS_XDG_FOREIGN
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,6 @@
|
||||||
#include <wlr/config.h>
|
#include <wlr/config.h>
|
||||||
#include <wlr/xwayland.h>
|
#include <wlr/xwayland.h>
|
||||||
#include <xcb/render.h>
|
#include <xcb/render.h>
|
||||||
#if WLR_HAS_XCB_ICCCM
|
|
||||||
#include <xcb/xcb_icccm.h>
|
|
||||||
#endif
|
|
||||||
#if WLR_HAS_XCB_ERRORS
|
#if WLR_HAS_XCB_ERRORS
|
||||||
#include <xcb/xcb_errors.h>
|
#include <xcb/xcb_errors.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -87,7 +87,6 @@ features = {
|
||||||
'x11-backend': false,
|
'x11-backend': false,
|
||||||
'xwayland': false,
|
'xwayland': false,
|
||||||
'xcb-errors': false,
|
'xcb-errors': false,
|
||||||
'xcb-icccm': false,
|
|
||||||
'xdg-foreign': false,
|
'xdg-foreign': false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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('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('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-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('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('x11-backend', type: 'feature', value: 'auto', description: 'Enable X11 backend')
|
||||||
option('examples', type: 'boolean', value: true, description: 'Build example applications')
|
option('examples', type: 'boolean', value: true, description: 'Build example applications')
|
||||||
|
|
|
@ -2,12 +2,12 @@ xwayland_libs = []
|
||||||
xwayland_required = [
|
xwayland_required = [
|
||||||
'xcb',
|
'xcb',
|
||||||
'xcb-composite',
|
'xcb-composite',
|
||||||
|
'xcb-icccm',
|
||||||
'xcb-render',
|
'xcb-render',
|
||||||
'xcb-xfixes',
|
'xcb-xfixes',
|
||||||
]
|
]
|
||||||
xwayland_optional = {
|
xwayland_optional = {
|
||||||
'xcb-errors': 'Required for printing X11 errors.',
|
'xcb-errors': 'Required for printing X11 errors.',
|
||||||
'xcb-icccm': 'Required for extended X11 window manager hints.',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
msg = []
|
msg = []
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <wlr/xwayland.h>
|
#include <wlr/xwayland.h>
|
||||||
#include <xcb/composite.h>
|
#include <xcb/composite.h>
|
||||||
#include <xcb/render.h>
|
#include <xcb/render.h>
|
||||||
|
#include <xcb/xcb_icccm.h>
|
||||||
#include <xcb/xfixes.h>
|
#include <xcb/xfixes.h>
|
||||||
#include "util/signal.h"
|
#include "util/signal.h"
|
||||||
#include "xwayland/xwm.h"
|
#include "xwayland/xwm.h"
|
||||||
|
@ -563,7 +564,6 @@ static void read_surface_protocols(struct wlr_xwm *xwm,
|
||||||
xsurface->protocols_len = atoms_len;
|
xsurface->protocols_len = atoms_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if WLR_HAS_XCB_ICCCM
|
|
||||||
static void read_surface_hints(struct wlr_xwm *xwm,
|
static void read_surface_hints(struct wlr_xwm *xwm,
|
||||||
struct wlr_xwayland_surface *xsurface,
|
struct wlr_xwayland_surface *xsurface,
|
||||||
xcb_get_property_reply_t *reply) {
|
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);
|
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,
|
static void read_surface_normal_hints(struct wlr_xwm *xwm,
|
||||||
struct wlr_xwayland_surface *xsurface,
|
struct wlr_xwayland_surface *xsurface,
|
||||||
xcb_get_property_reply_t *reply) {
|
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;
|
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_FLAGS_FIELD 0
|
||||||
#define MWM_HINTS_DECORATIONS_FIELD 2
|
#define MWM_HINTS_DECORATIONS_FIELD 2
|
||||||
|
|
Loading…
Reference in New Issue