summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client.h19
1 files changed, 9 insertions, 10 deletions
diff --git a/client.h b/client.h
index a5bec71..7d9ff8c 100644
--- a/client.h
+++ b/client.h
@@ -208,18 +208,18 @@ client_is_float_type(Client *c)
#ifdef XWAYLAND
if (client_is_x11(c)) {
struct wlr_xwayland_surface *surface = c->surface.xwayland;
- xcb_size_hints_t *size_hints;
+ xcb_size_hints_t *size_hints = surface->size_hints;
+ size_t i;
if (surface->modal)
return 1;
- for (size_t i = 0; i < surface->window_type_len; i++)
- 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])
+ for (i = 0; i < surface->window_type_len; i++)
+ 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])
return 1;
- size_hints = surface->size_hints;
return 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);
@@ -228,10 +228,9 @@ client_is_float_type(Client *c)
toplevel = c->surface.xdg->toplevel;
state = toplevel->current;
- return (state.min_width != 0 && state.min_height != 0
+ return toplevel->parent || (state.min_width != 0 && state.min_height != 0
&& (state.min_width == state.max_width
- || state.min_height == state.max_height))
- || toplevel->parent;
+ || state.min_height == state.max_height));
}
static inline int