aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
authorMarkus Ongyerth <ongy@ongy.net>2018-02-25 09:57:30 +0100
committerMarkus Ongyerth <ongy@ongy.net>2018-02-26 12:02:49 +0100
commitbb676013ed1b1b48847694a2159e3b009636b181 (patch)
tree18862338a2de095dfb41f4e451135fdab8af0b28 /include/wlr
parent3bce37f99a0390ef085063cb222b5e96584ae3dd (diff)
add xwayland unmanaged tests to support dmenu
This adds `wlr_xwayland_surface_is_unamanged`, to allow compositors more fine grained control over XWayland focus. A surface that is unmanaged should not receive focus, while other windows that are just override redirect may want it (dmenu). The way unamanged is determined is taken from wlc.
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/xwayland.h1
-rw-r--r--include/wlr/xwm.h9
2 files changed, 10 insertions, 0 deletions
diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h
index ad7ceb83..0d4b91ed 100644
--- a/include/wlr/xwayland.h
+++ b/include/wlr/xwayland.h
@@ -186,4 +186,5 @@ void wlr_xwayland_surface_set_fullscreen(struct wlr_xwayland_surface *surface,
void wlr_xwayland_set_seat(struct wlr_xwayland *xwayland,
struct wlr_seat *seat);
+bool wlr_xwayland_surface_is_unmanaged(const struct wlr_xwayland_surface *surface);
#endif
diff --git a/include/wlr/xwm.h b/include/wlr/xwm.h
index 65681607..7d518f7e 100644
--- a/include/wlr/xwm.h
+++ b/include/wlr/xwm.h
@@ -39,6 +39,12 @@ enum atom_name {
INCR,
TEXT,
TIMESTAMP,
+ NET_WM_WINDOW_TYPE_UTILITY,
+ NET_WM_WINDOW_TYPE_TOOLTIP,
+ NET_WM_WINDOW_TYPE_DND,
+ NET_WM_WINDOW_TYPE_DROPDOWN_MENU,
+ NET_WM_WINDOW_TYPE_POPUP_MENU,
+ NET_WM_WINDOW_TYPE_COMBO,
ATOM_LAST,
};
@@ -113,4 +119,7 @@ void xwm_selection_finish(struct wlr_xwm *xwm);
void xwm_set_seat(struct wlr_xwm *xwm, struct wlr_seat *seat);
+bool wlr_xwm_atoms_contains(struct wlr_xwm *xwm, xcb_atom_t *atoms,
+ size_t num_atoms, enum atom_name needle);
+
#endif