Add wlr_surface_accepts_touch
This commit is contained in:
parent
11e94c406b
commit
e3343cf7d1
|
@ -678,4 +678,9 @@ struct wlr_seat_client *wlr_seat_client_from_resource(
|
|||
struct wlr_seat_client *wlr_seat_client_from_pointer_resource(
|
||||
struct wl_resource *resource);
|
||||
|
||||
/**
|
||||
* Check whether a surface has bound to touch events.
|
||||
*/
|
||||
bool wlr_surface_accepts_touch(struct wlr_seat *wlr_seat, struct wlr_surface *surface);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -403,3 +403,12 @@ bool wlr_seat_validate_touch_grab_serial(struct wlr_seat *seat,
|
|||
"invalid origin surface");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool wlr_surface_accepts_touch(struct wlr_seat *wlr_seat, struct wlr_surface *surface) {
|
||||
struct wl_client *client = wl_resource_get_client(surface->resource);
|
||||
struct wlr_seat_client *seat_client = wlr_seat_client_for_wl_client(wlr_seat, client);
|
||||
if (!seat_client) {
|
||||
return false;
|
||||
}
|
||||
return !wl_list_empty(&seat_client->touches);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue