labwc/src/common/surface-helpers.c
John Lindgren 31d42b50e2 src: include primary header first
This is a common practice in C projects, which simply enforces that
each header must compile cleanly without implicit dependencies on
other headers (see also the previous commit).
2025-07-29 21:51:56 +01:00

27 lines
808 B
C

// SPDX-License-Identifier: GPL-2.0-only
#include "common/surface-helpers.h"
#include <wlr/types/wlr_layer_shell_v1.h>
#include <wlr/types/wlr_subcompositor.h>
#include <wlr/util/log.h>
struct wlr_layer_surface_v1 *
subsurface_parent_layer(struct wlr_surface *wlr_surface)
{
struct wlr_subsurface *subsurface =
wlr_subsurface_try_from_wlr_surface(wlr_surface);
if (!subsurface) {
return NULL;
}
struct wlr_surface *parent = subsurface->parent;
if (!parent) {
wlr_log(WLR_DEBUG, "subsurface %p has no parent", subsurface);
return NULL;
}
struct wlr_layer_surface_v1 *wlr_layer_surface =
wlr_layer_surface_v1_try_from_wlr_surface(parent);
if (wlr_layer_surface) {
return wlr_layer_surface;
}
/* Recurse in case there are nested sub-surfaces */
return subsurface_parent_layer(parent);
}