xdg-activation-v1: add data field and emit token destroy events
The data field is useful to track metadata about a token. The destroy events are useful for compositors that track application startup to let them know they can stop doing that.
This commit is contained in:
parent
6ad0f819e2
commit
e2aff8a9b0
|
@ -22,6 +22,12 @@ struct wlr_xdg_activation_token_v1 {
|
|||
char *app_id; // can be NULL
|
||||
struct wl_list link; // wlr_xdg_activation_v1.tokens
|
||||
|
||||
void *data;
|
||||
|
||||
struct {
|
||||
struct wl_signal destroy;
|
||||
} events;
|
||||
|
||||
// private state
|
||||
|
||||
char *token;
|
||||
|
|
|
@ -32,6 +32,9 @@ void wlr_xdg_activation_token_v1_destroy(
|
|||
if (token->timeout != NULL) {
|
||||
wl_event_source_remove(token->timeout);
|
||||
}
|
||||
|
||||
wlr_signal_emit_safe(&token->events.destroy, NULL);
|
||||
|
||||
wl_list_remove(&token->link);
|
||||
wl_list_remove(&token->seat_destroy.link);
|
||||
wl_list_remove(&token->surface_destroy.link);
|
||||
|
@ -258,6 +261,7 @@ static void activation_handle_get_activation_token(struct wl_client *client,
|
|||
wl_list_init(&token->link);
|
||||
wl_list_init(&token->seat_destroy.link);
|
||||
wl_list_init(&token->surface_destroy.link);
|
||||
wl_signal_init(&token->events.destroy);
|
||||
|
||||
token->activation = activation;
|
||||
|
||||
|
@ -376,6 +380,7 @@ struct wlr_xdg_activation_token_v1 *wlr_xdg_activation_token_v1_create(
|
|||
// Currently no way to set seat/surface
|
||||
wl_list_init(&token->seat_destroy.link);
|
||||
wl_list_init(&token->surface_destroy.link);
|
||||
wl_signal_init(&token->events.destroy);
|
||||
|
||||
token->activation = activation;
|
||||
|
||||
|
|
Loading…
Reference in New Issue