mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-29 05:40:12 -04:00
xdg-activation-v1: new protocol implementation
This implements the new xdg-activation-v1 protocol [1]. [1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/50
This commit is contained in:
parent
b86a0c8d8f
commit
8ff435831f
5 changed files with 391 additions and 3 deletions
61
include/wlr/types/wlr_xdg_activation_v1.h
Normal file
61
include/wlr/types/wlr_xdg_activation_v1.h
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* This an unstable interface of wlroots. No guarantees are made regarding the
|
||||
* future consistency of this API.
|
||||
*/
|
||||
#ifndef WLR_USE_UNSTABLE
|
||||
#error "Add -DWLR_USE_UNSTABLE to enable unstable wlroots features"
|
||||
#endif
|
||||
|
||||
#ifndef WLR_TYPES_WLR_XDG_ACTIVATION_V1
|
||||
#define WLR_TYPES_WLR_XDG_ACTIVATION_V1
|
||||
|
||||
#include <wayland-server-core.h>
|
||||
|
||||
struct wlr_xdg_activation_token_v1 {
|
||||
struct wlr_xdg_activation_v1 *activation;
|
||||
// The source surface that created the token.
|
||||
struct wlr_surface *surface; // can be NULL
|
||||
struct wlr_seat *seat; // can be NULL
|
||||
// The serial for the input event that created the token.
|
||||
uint32_t serial; // invalid if seat is NULL
|
||||
// The application ID to be activated. This is just a hint.
|
||||
char *app_id; // can be NULL
|
||||
struct wl_list link; // wlr_xdg_activation_v1.tokens
|
||||
|
||||
// private state
|
||||
|
||||
char *token;
|
||||
struct wl_resource *resource; // can be NULL
|
||||
|
||||
struct wl_listener seat_destroy;
|
||||
struct wl_listener surface_destroy;
|
||||
};
|
||||
|
||||
struct wlr_xdg_activation_v1 {
|
||||
|
||||
struct wl_list tokens; // wlr_xdg_activation_token_v1.link
|
||||
|
||||
struct {
|
||||
struct wl_signal destroy;
|
||||
struct wl_signal request_activate; // wlr_xdg_activation_v1_request_activate_event
|
||||
} events;
|
||||
|
||||
// private state
|
||||
|
||||
struct wl_global *global;
|
||||
|
||||
struct wl_listener display_destroy;
|
||||
};
|
||||
|
||||
struct wlr_xdg_activation_v1_request_activate_event {
|
||||
struct wlr_xdg_activation_v1 *activation;
|
||||
// The token used to request activation.
|
||||
struct wlr_xdg_activation_token_v1 *token;
|
||||
// The surface requesting for activation.
|
||||
struct wlr_surface *surface;
|
||||
};
|
||||
|
||||
struct wlr_xdg_activation_v1 *wlr_xdg_activation_v1_create(
|
||||
struct wl_display *display);
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue