aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLibravatar Aleksei Bavshin <alebastr89@gmail.com>2023-12-26 22:26:02 -0800
committerLibravatar Ronan Pigott <ronan@rjp.ie>2024-02-17 00:54:30 -0700
commitd19810eba8959f052d91fd6609cef6adf36b3951 (patch)
tree90b727f8cb792b06bf9aa1cc527d254c6c23edbf /include
parentlauncher: track the seat in the launcher ctx (diff)
downloadsway-d19810eba8959f052d91fd6609cef6adf36b3951.tar.gz
sway-d19810eba8959f052d91fd6609cef6adf36b3951.tar.zst
sway-d19810eba8959f052d91fd6609cef6adf36b3951.zip
xdg-activation: distinguish activation and urgency requests
Check if the app that requested a token has provided a valid input serial and a focused surface. Downgrade activation request to urgency otherwise. This is mostly in line with what other Wayland compositors decided to do, and offers a better security than the original logic.
Diffstat (limited to 'include')
-rw-r--r--include/sway/desktop/launcher.h1
-rw-r--r--include/sway/tree/view.h5
2 files changed, 6 insertions, 0 deletions
diff --git a/include/sway/desktop/launcher.h b/include/sway/desktop/launcher.h
index ad465a9e..412068a9 100644
--- a/include/sway/desktop/launcher.h
+++ b/include/sway/desktop/launcher.h
@@ -14,6 +14,7 @@ struct launcher_ctx {
14 struct wl_listener seat_destroy; 14 struct wl_listener seat_destroy;
15 15
16 bool activated; 16 bool activated;
17 bool had_focused_surface;
17 18
18 struct sway_node *node; 19 struct sway_node *node;
19 struct wl_listener node_destroy; 20 struct wl_listener node_destroy;
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h
index 8bfda018..ef1a26b8 100644
--- a/include/sway/tree/view.h
+++ b/include/sway/tree/view.h
@@ -242,6 +242,11 @@ void view_set_activated(struct sway_view *view, bool activated);
242 */ 242 */
243void view_request_activate(struct sway_view *view, struct sway_seat *seat); 243void view_request_activate(struct sway_view *view, struct sway_seat *seat);
244 244
245/*
246 * Called when the view requests urgent state
247 */
248void view_request_urgent(struct sway_view *view);
249
245/** 250/**
246 * If possible, instructs the client to change their decoration mode. 251 * If possible, instructs the client to change their decoration mode.
247 */ 252 */