diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-07-21 12:13:00 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-07-22 23:10:19 +1000 |
commit | 011d1ebfa4219eb666487529a5a5e7189c14fd40 (patch) | |
tree | 4dd3efa39573b7baa9e3965ed3b03799af849c54 /sway/desktop/xdg_shell.c | |
parent | Store last button and use it when views request to move or resize (diff) | |
download | sway-011d1ebfa4219eb666487529a5a5e7189c14fd40.tar.gz sway-011d1ebfa4219eb666487529a5a5e7189c14fd40.tar.zst sway-011d1ebfa4219eb666487529a5a5e7189c14fd40.zip |
Consider view's min/max sizes when resizing
Diffstat (limited to 'sway/desktop/xdg_shell.c')
-rw-r--r-- | sway/desktop/xdg_shell.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c index c5d53d1d..76fe72ea 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c | |||
@@ -1,4 +1,5 @@ | |||
1 | #define _POSIX_C_SOURCE 199309L | 1 | #define _POSIX_C_SOURCE 199309L |
2 | #include <float.h> | ||
2 | #include <stdbool.h> | 3 | #include <stdbool.h> |
3 | #include <stdlib.h> | 4 | #include <stdlib.h> |
4 | #include <wayland-server.h> | 5 | #include <wayland-server.h> |
@@ -95,6 +96,16 @@ static struct sway_xdg_shell_view *xdg_shell_view_from_view( | |||
95 | return (struct sway_xdg_shell_view *)view; | 96 | return (struct sway_xdg_shell_view *)view; |
96 | } | 97 | } |
97 | 98 | ||
99 | static void get_constraints(struct sway_view *view, double *min_width, | ||
100 | double *max_width, double *min_height, double *max_height) { | ||
101 | struct wlr_xdg_toplevel_state *state = | ||
102 | &view->wlr_xdg_surface->toplevel->current; | ||
103 | *min_width = state->min_width > 0 ? state->min_width : DBL_MIN; | ||
104 | *max_width = state->max_width > 0 ? state->max_width : DBL_MAX; | ||
105 | *min_height = state->min_height > 0 ? state->min_height : DBL_MIN; | ||
106 | *max_height = state->max_height > 0 ? state->max_height : DBL_MAX; | ||
107 | } | ||
108 | |||
98 | static const char *get_string_prop(struct sway_view *view, enum sway_view_prop prop) { | 109 | static const char *get_string_prop(struct sway_view *view, enum sway_view_prop prop) { |
99 | if (xdg_shell_view_from_view(view) == NULL) { | 110 | if (xdg_shell_view_from_view(view) == NULL) { |
100 | return NULL; | 111 | return NULL; |
@@ -188,6 +199,7 @@ static void destroy(struct sway_view *view) { | |||
188 | } | 199 | } |
189 | 200 | ||
190 | static const struct sway_view_impl view_impl = { | 201 | static const struct sway_view_impl view_impl = { |
202 | .get_constraints = get_constraints, | ||
191 | .get_string_prop = get_string_prop, | 203 | .get_string_prop = get_string_prop, |
192 | .configure = configure, | 204 | .configure = configure, |
193 | .set_activated = set_activated, | 205 | .set_activated = set_activated, |