]> git.sur5r.net Git - i3/i3/commitdiff
Ensure that resize will take place even if pixel is smaller than size increments.
authoroblique <psyberbits@gmail.com>
Mon, 15 Apr 2013 18:30:22 +0000 (21:30 +0300)
committerMichael Stapelberg <michael@stapelberg.de>
Mon, 15 Apr 2013 18:59:51 +0000 (20:59 +0200)
fixes #1011

src/commands.c

index 2404a811785591fd996c8ed37b815e0bdc252a37..538e2dbc617fe87f8980fdbde66bb0bff1a4d3e7 100644 (file)
@@ -569,6 +569,23 @@ void cmd_move_con_to_workspace_number(I3_CMD, char *which) {
 static void cmd_resize_floating(I3_CMD, char *way, char *direction, Con *floating_con, int px) {
     LOG("floating resize\n");
     Rect old_rect = floating_con->rect;
+    Con *focused_con = con_descend_focused(floating_con);
+
+    /* ensure that resize will take place even if pixel increment is smaller than
+     * height increment or width increment.
+     * fixes #1011 */
+    if (strcmp(direction, "up") == 0 || strcmp(direction, "down") == 0 ||
+        strcmp(direction, "height") == 0) {
+        if (px < 0)
+            px = (-px < focused_con->height_increment) ? -focused_con->height_increment : px;
+        else
+            px = (px < focused_con->height_increment) ? focused_con->height_increment : px;
+    } else if (strcmp(direction, "left") == 0 || strcmp(direction, "right") == 0) {
+        if (px < 0)
+            px = (-px < focused_con->width_increment) ? -focused_con->width_increment : px;
+        else
+            px = (px < focused_con->width_increment) ? focused_con->width_increment : px;
+    }
 
     if (strcmp(direction, "up") == 0) {
         floating_con->rect.height += px;