mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-22 12:55:58 +01:00
ext-session-lock-v1: convert to try_from
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/884
This commit is contained in:
parent
f9bd416d41
commit
c5f7f8ab98
2 changed files with 14 additions and 18 deletions
|
@ -94,18 +94,13 @@ uint32_t wlr_session_lock_surface_v1_configure(
|
||||||
struct wlr_session_lock_surface_v1 *lock_surface,
|
struct wlr_session_lock_surface_v1 *lock_surface,
|
||||||
uint32_t width, uint32_t height);
|
uint32_t width, uint32_t height);
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true if the surface has the session lock surface role.
|
|
||||||
*/
|
|
||||||
bool wlr_surface_is_session_lock_surface_v1(struct wlr_surface *surface);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a struct wlr_session_lock_surface_v1 from a struct wlr_surface.
|
* Get a struct wlr_session_lock_surface_v1 from a struct wlr_surface.
|
||||||
* Asserts that the surface has the session lock surface role.
|
*
|
||||||
* May return NULL even if the surface has the session lock surface role if the
|
* Returns NULL if the surface has a different role or if the lock surface
|
||||||
* corresponding session lock surface has been destroyed.
|
* has been destroyed.
|
||||||
*/
|
*/
|
||||||
struct wlr_session_lock_surface_v1 *wlr_session_lock_surface_v1_from_wlr_surface(
|
struct wlr_session_lock_surface_v1 *wlr_session_lock_surface_v1_try_from_wlr_surface(
|
||||||
struct wlr_surface *surface);
|
struct wlr_surface *surface);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -48,13 +48,11 @@ static struct wlr_session_lock_surface_v1 *lock_surface_from_resource(
|
||||||
|
|
||||||
static const struct wlr_surface_role lock_surface_role;
|
static const struct wlr_surface_role lock_surface_role;
|
||||||
|
|
||||||
bool wlr_surface_is_session_lock_surface_v1(struct wlr_surface *surface) {
|
struct wlr_session_lock_surface_v1 *wlr_session_lock_surface_v1_try_from_wlr_surface(
|
||||||
return surface->role == &lock_surface_role;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct wlr_session_lock_surface_v1 *wlr_session_lock_surface_v1_from_wlr_surface(
|
|
||||||
struct wlr_surface *surface) {
|
struct wlr_surface *surface) {
|
||||||
assert(wlr_surface_is_session_lock_surface_v1(surface));
|
if (surface->role != &lock_surface_role) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
return (struct wlr_session_lock_surface_v1 *)surface->role_data;
|
return (struct wlr_session_lock_surface_v1 *)surface->role_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,7 +131,8 @@ static const struct ext_session_lock_surface_v1_interface lock_surface_implement
|
||||||
|
|
||||||
static void lock_surface_role_commit(struct wlr_surface *surface) {
|
static void lock_surface_role_commit(struct wlr_surface *surface) {
|
||||||
struct wlr_session_lock_surface_v1 *lock_surface =
|
struct wlr_session_lock_surface_v1 *lock_surface =
|
||||||
wlr_session_lock_surface_v1_from_wlr_surface(surface);
|
wlr_session_lock_surface_v1_try_from_wlr_surface(surface);
|
||||||
|
assert(lock_surface != NULL);
|
||||||
|
|
||||||
if (!lock_surface->configured) {
|
if (!lock_surface->configured) {
|
||||||
wl_resource_post_error(lock_surface->resource,
|
wl_resource_post_error(lock_surface->resource,
|
||||||
|
@ -162,7 +161,8 @@ static void lock_surface_role_commit(struct wlr_surface *surface) {
|
||||||
static void lock_surface_role_precommit(struct wlr_surface *surface,
|
static void lock_surface_role_precommit(struct wlr_surface *surface,
|
||||||
const struct wlr_surface_state *state) {
|
const struct wlr_surface_state *state) {
|
||||||
struct wlr_session_lock_surface_v1 *lock_surface =
|
struct wlr_session_lock_surface_v1 *lock_surface =
|
||||||
wlr_session_lock_surface_v1_from_wlr_surface(surface);
|
wlr_session_lock_surface_v1_try_from_wlr_surface(surface);
|
||||||
|
assert(lock_surface != NULL);
|
||||||
|
|
||||||
if (state->committed & WLR_SURFACE_STATE_BUFFER && state->buffer == NULL) {
|
if (state->committed & WLR_SURFACE_STATE_BUFFER && state->buffer == NULL) {
|
||||||
wl_resource_post_error(lock_surface->resource,
|
wl_resource_post_error(lock_surface->resource,
|
||||||
|
@ -174,7 +174,8 @@ static void lock_surface_role_precommit(struct wlr_surface *surface,
|
||||||
|
|
||||||
static void lock_surface_role_destroy(struct wlr_surface *surface) {
|
static void lock_surface_role_destroy(struct wlr_surface *surface) {
|
||||||
struct wlr_session_lock_surface_v1 *lock_surface =
|
struct wlr_session_lock_surface_v1 *lock_surface =
|
||||||
wlr_session_lock_surface_v1_from_wlr_surface(surface);
|
wlr_session_lock_surface_v1_try_from_wlr_surface(surface);
|
||||||
|
assert(lock_surface != NULL);
|
||||||
|
|
||||||
wl_signal_emit_mutable(&lock_surface->events.destroy, NULL);
|
wl_signal_emit_mutable(&lock_surface->events.destroy, NULL);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue