Float views when min == max on either dimension

This fixes pinentry-gtk-2, but might make other views floating which
would otherwise be tiled. This patch is more of a trial which could end
up becoming a permanent fix.
This commit is contained in:
Ryan Dwyer 2018-09-06 23:57:57 +10:00
parent 4a3b705a12
commit cf32d5d776
3 changed files with 6 additions and 6 deletions

View file

@ -170,8 +170,8 @@ static bool wants_floating(struct sway_view *view) {
struct wlr_xdg_toplevel *toplevel = view->wlr_xdg_surface->toplevel; struct wlr_xdg_toplevel *toplevel = view->wlr_xdg_surface->toplevel;
struct wlr_xdg_toplevel_state *state = &toplevel->current; struct wlr_xdg_toplevel_state *state = &toplevel->current;
return (state->min_width != 0 && state->min_height != 0 return (state->min_width != 0 && state->min_height != 0
&& state->min_width == state->max_width && (state->min_width == state->max_width
&& state->min_height == state->max_height) || state->min_height == state->max_height))
|| toplevel->parent; || toplevel->parent;
} }

View file

@ -166,8 +166,8 @@ static bool wants_floating(struct sway_view *view) {
view->wlr_xdg_surface_v6->toplevel; view->wlr_xdg_surface_v6->toplevel;
struct wlr_xdg_toplevel_v6_state *state = &toplevel->current; struct wlr_xdg_toplevel_v6_state *state = &toplevel->current;
return (state->min_width != 0 && state->min_height != 0 return (state->min_width != 0 && state->min_height != 0
&& state->min_width == state->max_width && (state->min_width == state->max_width
&& state->min_height == state->max_height) || state->min_height == state->max_height))
|| toplevel->parent; || toplevel->parent;
} }

View file

@ -235,8 +235,8 @@ static bool wants_floating(struct sway_view *view) {
struct wlr_xwayland_surface_size_hints *size_hints = surface->size_hints; struct wlr_xwayland_surface_size_hints *size_hints = surface->size_hints;
if (size_hints != NULL && if (size_hints != NULL &&
size_hints->min_width != 0 && size_hints->min_height != 0 && size_hints->min_width != 0 && size_hints->min_height != 0 &&
size_hints->max_width == size_hints->min_width && (size_hints->max_width == size_hints->min_width ||
size_hints->max_height == size_hints->min_height) { size_hints->max_height == size_hints->min_height)) {
return true; return true;
} }