]> git.sur5r.net Git - i3/i3/commitdiff
resize set for floating: interpret 0 as 'no change'
authorOrestis Floros <orestisf1993@gmail.com>
Wed, 2 May 2018 14:43:43 +0000 (17:43 +0300)
committerOrestis Floros <orestisf1993@gmail.com>
Wed, 2 May 2018 16:02:38 +0000 (19:02 +0300)
Fixes #3276

src/commands.c
testcases/t/252-floating-size.t

index 0c5b8bcb2a2c47e121bdcfbf0a76d535efaa05b6..2d5ef362e2458efc130474c02caa5eb69316fafc 100644 (file)
@@ -644,12 +644,12 @@ void cmd_resize_set(I3_CMD, long cwidth, const char *mode_width, long cheight, c
         if ((floating_con = con_inside_floating(current->con))) {
             Con *output = con_get_output(floating_con);
             if (cwidth == 0) {
-                cwidth = output->rect.width;
+                cwidth = floating_con->rect.width;
             } else if (mode_width && strcmp(mode_width, "ppt") == 0) {
                 cwidth = output->rect.width * ((double)cwidth / 100.0);
             }
             if (cheight == 0) {
-                cheight = output->rect.height;
+                cheight = floating_con->rect.height;
             } else if (mode_height && strcmp(mode_height, "ppt") == 0) {
                 cheight = output->rect.height * ((double)cheight / 100.0);
             }
index d3c2269b50f9348d6c063ed211f1acb403e5cba7..7875cb07ffb92f936a2dd5c843e809f786c6d0fa 100644 (file)
@@ -79,4 +79,21 @@ do_test(int(0.44 * 1333), 111);
 cmd 'resize set 222 px 100 ppt';
 do_test(222, 999);
 
+################################################################################
+# Zero is interpreted as no change.
+# See issue: #3276.
+################################################################################
+
+cmd 'resize set 0 px 333 px';
+do_test(0, 333);
+
+cmd 'resize set 333 px 0 ppt';
+do_test(333, 0);
+
+cmd 'resize set 0 px 0 ppt';
+do_test(0, 0);
+
+cmd 'resize set 100 ppt 0 px';
+do_test(1333, 0);
+
 done_testing;