wayland: add wayl_activate()

wayl_activate() takes an XDG activation token and does an XDG
activation request.
This commit is contained in:
Daniel Eklöf 2024-07-23 06:58:37 +02:00
parent a42f990818
commit 69f56b86b7
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 15 additions and 2 deletions

View file

@ -1824,8 +1824,7 @@ wayl_win_init(struct terminal *term, const char *token)
wl_surface_commit(win->surface.surf);
/* Complete XDG startup notification */
if (token && wayl->xdg_activation != NULL)
xdg_activation_v1_activate(wayl->xdg_activation, token, win->surface.surf);
wayl_activate(wayl, win, token);
if (!wayl_win_subsurface_new(win, &win->overlay, false)) {
LOG_ERR("failed to create overlay surface");
@ -2377,3 +2376,15 @@ wayl_get_activation_token(
xdg_activation_token_v1_commit(token);
return true;
}
void
wayl_activate(struct wayland *wayl, struct wl_window *win, const char *token)
{
if (wayl->xdg_activation == NULL)
return;
if (token == NULL)
return;
xdg_activation_v1_activate(wayl->xdg_activation, token, win->surface.surf);
}

View file

@ -499,3 +499,5 @@ void wayl_win_subsurface_destroy(struct wayl_sub_surface *surf);
bool wayl_get_activation_token(
struct wayland *wayl, struct seat *seat, uint32_t serial,
struct wl_window *win, activation_token_cb_t cb, void *cb_data);
void wayl_activate(struct wayland *wayl, struct wl_window *win, const char *token);