wl_protocol_dir / 'unstable/pointer-constraints/pointer-constraints-unstable-v1.xml',
wl_protocol_dir / 'staging/cursor-shape/cursor-shape-v1.xml',
wl_protocol_dir / 'staging/drm-lease/drm-lease-v1.xml',
+ wl_protocol_dir / 'staging/xwayland-shell/xwayland-shell-v1.xml',
wl_protocol_dir / 'staging/tearing-control/tearing-control-v1.xml',
'wlr-layer-shell-unstable-v1.xml',
'wlr-input-inhibitor-unstable-v1.xml',
#include <wlr/types/wlr_viewporter.h>
#if HAVE_XWAYLAND
#include <wlr/xwayland.h>
+#include "xwayland-shell-v1-protocol.h"
#endif
#include "drm-lease-v1-protocol.h"
#include "config/rcxml.h"
(void)iface; (void)server;
#if HAVE_XWAYLAND
- struct wl_client *xwayland_client =
- server->xwayland ? server->xwayland->server->client : NULL;
- if (xwayland_client && client == xwayland_client) {
+ struct wl_client *xwayland_client = (server->xwayland && server->xwayland->server)
+ ? server->xwayland->server->client
+ : NULL;
+
+ if (client == xwayland_client) {
/*
* Filter out wp_drm_lease_device_v1 for now as it is resulting in
* issues with Xwayland applications lagging over time.
if (!strcmp(iface->name, wp_drm_lease_device_v1_interface.name)) {
return false;
}
+ } else if (!strcmp(iface->name, xwayland_shell_v1_interface.name)) {
+ /* Filter out the xwayland shell for usual clients */
+ return false;
}
#endif