YPEFSYD2O7BLC6VVQTXQMU4XGNIG2CXJAMV3WVBSWZRDVUSXRQDAC if (xdg_surface->role != WLR_XDG_SURFACE_ROLE_TOPLEVEL)
if (xdg_surface->role == WLR_XDG_SURFACE_ROLE_POPUP) {struct wlr_box box;if (!(c = client_from_popup(xdg_surface->popup)))return;client_get_geometry(c, &box);wlr_xdg_popup_unconstrain_from_box(xdg_surface->popup, &box);return;} else if (xdg_surface->role == WLR_XDG_SURFACE_ROLE_NONE)
static inline Client *client_from_popup(struct wlr_xdg_popup *popup){struct wlr_xdg_surface *surface = popup->base;while (1) {switch (surface->role) {case WLR_XDG_SURFACE_ROLE_POPUP:if (!wlr_surface_is_xdg_surface(surface->popup->parent))return NULL;surface = wlr_xdg_surface_from_wlr_surface(surface->popup->parent);break;case WLR_XDG_SURFACE_ROLE_TOPLEVEL:return surface->data;case WLR_XDG_SURFACE_ROLE_NONE:return NULL;}}}