From d19810eba8959f052d91fd6609cef6adf36b3951 Mon Sep 17 00:00:00 2001
From: Aleksei Bavshin <alebastr89@gmail.com>
Date: Tue, 26 Dec 2023 22:26:02 -0800
Subject: 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.
---
 sway/tree/view.c | 6 ++++++
 1 file changed, 6 insertions(+)

(limited to 'sway/tree')

diff --git a/sway/tree/view.c b/sway/tree/view.c
index 5525bf63..4a0d8069 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -412,6 +412,12 @@ void view_request_activate(struct sway_view *view, struct sway_seat *seat) {
 	transaction_commit_dirty();
 }
 
+void view_request_urgent(struct sway_view *view) {
+	if (config->focus_on_window_activation != FOWA_NONE) {
+		view_set_urgent(view, true);
+	}
+}
+
 void view_set_csd_from_server(struct sway_view *view, bool enabled) {
 	sway_log(SWAY_DEBUG, "Telling view %p to set CSD to %i", view, enabled);
 	if (view->xdg_decoration) {
-- 
cgit v1.2.3