aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
authorKonstantin Pospelov <kupospelov@gmail.com>2018-11-25 12:03:04 +0300
committerKonstantin Pospelov <kupospelov@gmail.com>2018-11-25 12:33:11 +0300
commita7b9e63cbcacc5dd4629598734a231b9f830670d (patch)
treea8ce9ad4507533c6b5dd6c5c1bda481f2992c759 /sway
parentd440468d2deb31d311564a5b796608136cf99e49 (diff)
resize set: fix units for floating containers
This commit fixes the default size units for floating containers, so that pixels are used if the units are not specified.
Diffstat (limited to 'sway')
-rw-r--r--sway/commands/resize.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/sway/commands/resize.c b/sway/commands/resize.c
index a90d578e..bafaea87 100644
--- a/sway/commands/resize.c
+++ b/sway/commands/resize.c
@@ -512,34 +512,38 @@ static struct cmd_results *resize_set_floating(struct sway_container *con,
calculate_constraints(&min_width, &max_width, &min_height, &max_height);
if (width->amount) {
- if (width->unit == RESIZE_UNIT_PPT ||
- width->unit == RESIZE_UNIT_DEFAULT) {
+ switch (width->unit) {
+ case RESIZE_UNIT_PPT:
// Convert to px
width->amount = con->workspace->width * width->amount / 100;
width->unit = RESIZE_UNIT_PX;
- }
- if (width->unit == RESIZE_UNIT_PX) {
+ // Falls through
+ case RESIZE_UNIT_PX:
+ case RESIZE_UNIT_DEFAULT:
width->amount = fmax(min_width, fmin(width->amount, max_width));
grow_width = width->amount - con->width;
-
con->x -= grow_width / 2;
con->width = width->amount;
+ case RESIZE_UNIT_INVALID:
+ break;
}
}
if (height->amount) {
- if (height->unit == RESIZE_UNIT_PPT ||
- height->unit == RESIZE_UNIT_DEFAULT) {
+ switch (height->unit) {
+ case RESIZE_UNIT_PPT:
// Convert to px
height->amount = con->workspace->height * height->amount / 100;
height->unit = RESIZE_UNIT_PX;
- }
- if (height->unit == RESIZE_UNIT_PX) {
+ // Falls through
+ case RESIZE_UNIT_PX:
+ case RESIZE_UNIT_DEFAULT:
height->amount = fmax(min_height, fmin(height->amount, max_height));
grow_height = height->amount - con->height;
-
con->y -= grow_height / 2;
con->height = height->amount;
+ case RESIZE_UNIT_INVALID:
+ break;
}
}