diff --git a/wayland.c b/wayland.c index 04f50bda..3f65901b 100644 --- a/wayland.c +++ b/wayland.c @@ -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); +} diff --git a/wayland.h b/wayland.h index 9db02d89..ca9c05fa 100644 --- a/wayland.h +++ b/wayland.h @@ -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); +