aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2021-01-29 16:45:44 +0100
committerSimon Ser <contact@emersion.fr>2021-09-11 09:53:23 +0200
commite479dc1ef0fe5165cd2456927cdf153ce206e023 (patch)
treee44b519d0aa4218b2ede8f21c79d46f534f5db72 /include
parent4e7a8707cce75b4cdc046581ec0c1cc7c0c26e02 (diff)
xwayland: Allow to retrieve startup-id via _NET_STARTUP_INFO
A launchee notifies with a "remove"¹ message when done starting up. Catch these and forward to the compositor. This allows the compositor to end the startup sequence that might have been started by another protocol like xdg-activation. We don't handle other messages since we expect the launcher to use a wayland protocol like xdg-activation. While `_NET_STARTUP_ID` helps to associate toplevels with startup-ids this signals the end of the startup sequence. 1) https://specifications.freedesktop.org/startup-notification-spec/startup-notification-latest.txt
Diffstat (limited to 'include')
-rw-r--r--include/wlr/xwayland.h6
-rw-r--r--include/xwayland/xwm.h3
2 files changed, 9 insertions, 0 deletions
diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h
index a91638eb..3689b8b3 100644
--- a/include/wlr/xwayland.h
+++ b/include/wlr/xwayland.h
@@ -72,6 +72,7 @@ struct wlr_xwayland {
struct {
struct wl_signal ready;
struct wl_signal new_surface;
+ struct wl_signal remove_startup_info;
} events;
/**
@@ -232,6 +233,11 @@ struct wlr_xwayland_move_event {
struct wlr_xwayland_surface *surface;
};
+struct wlr_xwayland_remove_startup_info_event {
+ const char *id;
+ xcb_window_t window;
+};
+
struct wlr_xwayland_resize_event {
struct wlr_xwayland_surface *surface;
uint32_t edges;
diff --git a/include/xwayland/xwm.h b/include/xwayland/xwm.h
index 5e6bfee3..0cdf6ea1 100644
--- a/include/xwayland/xwm.h
+++ b/include/xwayland/xwm.h
@@ -56,6 +56,8 @@ enum atom_name {
TIMESTAMP,
DELETE,
NET_STARTUP_ID,
+ NET_STARTUP_INFO,
+ NET_STARTUP_INFO_BEGIN,
NET_WM_WINDOW_TYPE_NORMAL,
NET_WM_WINDOW_TYPE_UTILITY,
NET_WM_WINDOW_TYPE_TOOLTIP,
@@ -113,6 +115,7 @@ struct wlr_xwm {
// Surfaces in bottom-to-top stacking order, for _NET_CLIENT_LIST_STACKING
struct wl_list surfaces_in_stack_order; // wlr_xwayland_surface::stack_link
struct wl_list unpaired_surfaces; // wlr_xwayland_surface::unpaired_link
+ struct wl_list pending_startup_ids; // pending_startup_id
struct wlr_drag *drag;
struct wlr_xwayland_surface *drag_focus;