aboutsummaryrefslogtreecommitdiff
path: root/xwayland/xwm.c
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2018-04-02 20:57:09 -0400
committerDrew DeVault <sir@cmpwn.com>2018-04-02 20:57:09 -0400
commit506acbdecd4436117729e4c40678645725ed2d1f (patch)
treec28e81fbde15d87d97753aab189e5c0a8da9d943 /xwayland/xwm.c
parent9ce53d7dc4c49da7cb9c56a3d552969180422380 (diff)
Missed a spot
Diffstat (limited to 'xwayland/xwm.c')
-rw-r--r--xwayland/xwm.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/xwayland/xwm.c b/xwayland/xwm.c
index 6702c3c9..4fa7d311 100644
--- a/xwayland/xwm.c
+++ b/xwayland/xwm.c
@@ -1,6 +1,7 @@
#ifndef _POSIX_C_SOURCE
#define _POSIX_C_SOURCE 200809L
#endif
+#include <assert.h>
#include <stdlib.h>
#include <unistd.h>
#include <wlr/config.h>
@@ -58,6 +59,18 @@ const char *atom_map[ATOM_LAST] = {
"_NET_WM_WINDOW_TYPE_COMBO",
};
+const char *wlr_xwayland_surface_role = "wlr_xwayland_surface";
+
+bool wlr_surface_is_xwayland_surface(struct wlr_surface *surface) {
+ return strcmp(surface->role, wlr_xwayland_surface_role) == 0;
+}
+
+struct wlr_xwayland_surface *wlr_xwayland_surface_from_wlr_surface(
+ struct wlr_surface *surface) {
+ assert(wlr_surface_is_xwayland_surface(surface));
+ return (struct wlr_xwayland_surface *)surface->role_data;
+}
+
/* General helpers */
// TODO: replace this with hash table?
static struct wlr_xwayland_surface *lookup_surface(struct wlr_xwm *xwm,
@@ -574,6 +587,7 @@ static void xwm_map_shell_surface(struct wlr_xwm *xwm,
read_surface_property(xwm, xsurface, props[i]);
}
+ wlr_surface_set_role(xsurface->surface, wlr_xwayland_surface_role, NULL, 0);
wlr_surface_set_role_committed(xsurface->surface, handle_surface_commit,
xsurface);