mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-31 22:25:21 -04:00
compositor: add wlr_surface_role.no_object
This commit allows to make a role as not represented by an object,
which fixes calling role commit handlers for roles like cursor
surfaces.
Fixes: 099b9de752
This commit is contained in:
parent
2d9659d765
commit
753f3cc4fa
5 changed files with 18 additions and 1 deletions
|
|
@ -73,8 +73,16 @@ struct wlr_surface_state {
|
|||
|
||||
struct wlr_surface_role {
|
||||
const char *name;
|
||||
/**
|
||||
* If true, the role isn't represented by any object.
|
||||
* For example, this applies to cursor surfaces.
|
||||
*/
|
||||
bool no_object;
|
||||
/**
|
||||
* Called when a new surface state is committed. May be NULL.
|
||||
*
|
||||
* If the role is represented by an object, this is only called if
|
||||
* such object exists.
|
||||
*/
|
||||
void (*commit)(struct wlr_surface *surface);
|
||||
/**
|
||||
|
|
@ -224,6 +232,10 @@ typedef void (*wlr_surface_iterator_func_t)(struct wlr_surface *surface,
|
|||
/**
|
||||
* Set the lifetime role for this surface. Returns true on success or false if
|
||||
* the role cannot be set.
|
||||
*
|
||||
* If the role is represented by an object, role_data must be non-NULL.
|
||||
* Alternatively, if the role isn't represented by any object, role_data must
|
||||
* be NULL.
|
||||
*/
|
||||
bool wlr_surface_set_role(struct wlr_surface *surface,
|
||||
const struct wlr_surface_role *role, void *role_data,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue