PNZ7OLEKOH5SGRV46BDUGVE2JKS5RVHDMXLLJJZODE6VEZRTKYGAC KWXCA3ZN72CI4FSYVVCLHX4BSIKOX37CGUPFTKUW5P3ZSC3MTYHQC 5KMDJQA7HDRP3ECIK2JJUB2LYT5BCDVUZET32VI6V5TIEX74GIIAC KUB4ULGPNSBXFDH46OMH4SRT2A2R4YFFIYEDKW7OFVJU5TSDOIGQC 52ME2RULOPZQLH3ZKDKNRIR6FZK2BUOHRULMVN7EN5TO4APCKAOAC 7B74AT3BXYB7PVW4F6SGQNPMHOU5TEV5TZ54CG6VSQI46XSEKWXQC US4HQXVWZEPU6HZ7Q733QB5QXOD32HJBYHUAQTT3DZGVXBMPNNOAC 7L3TU7JVWPBPHN7WF4TJ263BZ6BC3AYRRW6PULFUP5JZUGWWNUSAC WXDI7LEXSSMEY36AMMHM3BDHXJVMLL3HPSVJOOE7GFJMCA36CB4QC BFWKVWAIUKHCZVRA62GW6QZUEUKQLW365HUWIVKTEIPJNJSOZBAQC 2GP4MXKEDQMZ7E6TCRSMV2AGN7HLEAHR3QEAC2QFCQQNPMNJSIHQC 5ADZDRHLTSHKS6LZXAWRXRN3NGT3JMIVFCUHWXVOMBVP5TXHUDMQC 7EY3YPO43GHF3LWNI3UZKMMT65UO6DK4LA2X2UC25PAA77KVGSIQC YPEFSYD2O7BLC6VVQTXQMU4XGNIG2CXJAMV3WVBSWZRDVUSXRQDAC /* set minimum possible */c->geom.width = MAX(1, c->geom.width);c->geom.height = MAX(1, c->geom.height);
struct wlr_box min = {0}, max = {0};client_get_size_hints(c, &max, &min);/* try to set size hints */c->geom.width = MAX(min.width + (2 * c->bw), c->geom.width);c->geom.height = MAX(min.height + (2 * c->bw), c->geom.height);if (max.width > 0)c->geom.width = MIN(max.width + (2 * c->bw), c->geom.width);if (max.height > 0)c->geom.height = MIN(max.height + (2 * c->bw), c->geom.height);
}static inline voidclient_get_size_hints(Client *c, struct wlr_box *max, struct wlr_box *min){struct wlr_xdg_toplevel *toplevel;struct wlr_xdg_toplevel_state *state;#ifdef XWAYLANDif (client_is_x11(c)) {struct wlr_xwayland_surface_size_hints *size_hints;size_hints = c->surface.xwayland->size_hints;if (size_hints) {max->width = size_hints->max_width;max->height = size_hints->max_height;min->width = size_hints->min_width;min->height = size_hints->min_height;}return;}#endiftoplevel = c->surface.xdg->toplevel;state = &toplevel->current;max->width = state->max_width;max->height = state->max_height;min->width = state->min_width;min->height = state->min_height;
if (surface->window_type[i] == netatom[NetWMWindowTypeDialog] ||surface->window_type[i] == netatom[NetWMWindowTypeSplash] ||surface->window_type[i] == netatom[NetWMWindowTypeToolbar] ||surface->window_type[i] == netatom[NetWMWindowTypeUtility])
if (surface->window_type[i] == netatom[NetWMWindowTypeDialog]|| surface->window_type[i] == netatom[NetWMWindowTypeSplash]|| surface->window_type[i] == netatom[NetWMWindowTypeToolbar]|| surface->window_type[i] == netatom[NetWMWindowTypeUtility])
size_hints = surface->size_hints;if (size_hints && size_hints->min_width > 0 && size_hints->min_height > 0&& (size_hints->max_width == size_hints->min_width ||size_hints->max_height == size_hints->min_height))return 1;return 0;
return ((min.width > 0 || min.height > 0 || max.width > 0 || max.height > 0)&& (min.width == max.width || min.height == max.height))|| c->surface.xwayland->parent;
toplevel = c->surface.xdg->toplevel;state = toplevel->current;return (state.min_width != 0 && state.min_height != 0&& (state.min_width == state.max_width|| state.min_height == state.max_height))|| toplevel->parent;
return ((min.width > 0 || min.height > 0 || max.width > 0 || max.height > 0)&& (min.width == max.width || min.height == max.height))|| c->surface.xdg->toplevel->parent;
client_min_size(Client *c, int *width, int *height){struct wlr_xdg_toplevel *toplevel;struct wlr_xdg_toplevel_state *state;#ifdef XWAYLANDif (client_is_x11(c)) {struct wlr_xwayland_surface_size_hints *size_hints;size_hints = c->surface.xwayland->size_hints;if (size_hints) {*width = size_hints->min_width;*height = size_hints->min_height;} else {*width = 0;*height = 0;}return;}#endiftoplevel = c->surface.xdg->toplevel;state = &toplevel->current;*width = state->min_width;*height = state->min_height;}static inline void