summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2024-02-28 14:22:09 -0700
committerFurkan Sahin <furkan-dev@proton.me>2024-02-28 14:22:09 -0700
commit8ab1dc2d77e1e7f7dcb922806ec39de915c0802d (patch)
tree7c265a09ebf7ac7f4bda0786f5267bf1d35ef2a2
parent2f72cb70caca8814d15cc38136394820ae586268 (diff)
xdg-activation: launcher tokens are activation requests
If the launched client decides to pass it's token along as an activation request, allow that. This will make the behavior match tokens provided by an external launcher client.
-rw-r--r--sway/xdg_activation_v1.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sway/xdg_activation_v1.c b/sway/xdg_activation_v1.c
index b7c80dd4..fd604874 100644
--- a/sway/xdg_activation_v1.c
+++ b/sway/xdg_activation_v1.c
@@ -38,14 +38,14 @@ void xdg_activation_v1_handle_request_activate(struct wl_listener *listener,
}
// This is an activation request. If this context is internal we have ctx->seat.
- struct sway_seat *seat = ctx->seat;
- if (!seat) {
- // Otherwise, use the seat indicated by the launcher client in set_serial
- seat = ctx->token->seat ? ctx->token->seat->data : NULL;
+ if (ctx->seat) {
+ view_request_activate(view, ctx->seat);
+ return;
}
- if (seat && ctx->had_focused_surface) {
- view_request_activate(view, seat);
+ // Otherwise, activate if passed from another focused client
+ if (ctx->token->seat && ctx->had_focused_surface) {
+ view_request_activate(view, ctx->token->seat->data);
} else {
// The token is valid, but cannot be used to activate a window
view_request_urgent(view);