aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonardo Hernández Hernández <leohdz172@proton.me>2023-08-19 11:10:36 -0600
committerLeonardo Hernández Hernández <leohdz172@proton.me>2023-08-19 11:10:36 -0600
commitbdc34401ba8e4a59b3464c17fa5acf43ca417e57 (patch)
tree28ea9db18dab8adfa1c857a5c29732a31371ca74
parent22b6581a18c7b3cf10fbbc8f94c01eeffd4293f7 (diff)
xdg-decoration: store an xdg_toplevel instead of xdg_surface
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3685
-rw-r--r--include/wlr/types/wlr_xdg_decoration_v1.h2
-rw-r--r--types/wlr_xdg_decoration_v1.c8
2 files changed, 5 insertions, 5 deletions
diff --git a/include/wlr/types/wlr_xdg_decoration_v1.h b/include/wlr/types/wlr_xdg_decoration_v1.h
index 138eb020..13bb4294 100644
--- a/include/wlr/types/wlr_xdg_decoration_v1.h
+++ b/include/wlr/types/wlr_xdg_decoration_v1.h
@@ -36,7 +36,7 @@ struct wlr_xdg_toplevel_decoration_v1_state {
struct wlr_xdg_toplevel_decoration_v1 {
struct wl_resource *resource;
- struct wlr_xdg_surface *surface;
+ struct wlr_xdg_toplevel * toplevel;
struct wlr_xdg_decoration_manager_v1 *manager;
struct wl_list link; // wlr_xdg_decoration_manager_v1.link
diff --git a/types/wlr_xdg_decoration_v1.c b/types/wlr_xdg_decoration_v1.c
index d20461ed..f750821c 100644
--- a/types/wlr_xdg_decoration_v1.c
+++ b/types/wlr_xdg_decoration_v1.c
@@ -54,7 +54,7 @@ uint32_t wlr_xdg_toplevel_decoration_v1_set_mode(
enum wlr_xdg_toplevel_decoration_v1_mode mode) {
assert(mode != WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_NONE);
decoration->scheduled_mode = mode;
- return wlr_xdg_surface_schedule_configure(decoration->surface);
+ return wlr_xdg_surface_schedule_configure(decoration->toplevel->base);
}
static void toplevel_decoration_handle_resource_destroy(
@@ -150,7 +150,7 @@ static void toplevel_decoration_handle_surface_commit(
decoration->current = decoration->pending;
- if (decoration->surface->added && !decoration->added) {
+ if (decoration->toplevel->base->added && !decoration->added) {
decoration->added = true;
wl_signal_emit_mutable(&manager->events.new_toplevel_decoration,
decoration);
@@ -189,7 +189,7 @@ static void decoration_manager_handle_get_toplevel_decoration(
struct wlr_xdg_toplevel_decoration_v1 *existing;
wl_list_for_each(existing, &manager->decorations, link) {
- if (existing->surface == toplevel->base) {
+ if (existing->toplevel == toplevel) {
wl_resource_post_error(manager_resource,
ZXDG_TOPLEVEL_DECORATION_V1_ERROR_ALREADY_CONSTRUCTED,
"xdg_toplevel already has a decoration object");
@@ -204,7 +204,7 @@ static void decoration_manager_handle_get_toplevel_decoration(
return;
}
decoration->manager = manager;
- decoration->surface = toplevel->base;
+ decoration->toplevel = toplevel;
uint32_t version = wl_resource_get_version(manager_resource);
decoration->resource = wl_resource_create(client,