From: oblique Date: Mon, 15 Apr 2013 18:30:22 +0000 (+0300) Subject: Ensure that resize will take place even if pixel is smaller than size increments. X-Git-Tag: 4.6~44^2^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=a93e1e5c59573887f9cc49c1c40bf28b92e567b2;p=i3%2Fi3 Ensure that resize will take place even if pixel is smaller than size increments. fixes #1011 --- diff --git a/src/commands.c b/src/commands.c index 2404a811..538e2dbc 100644 --- a/src/commands.c +++ b/src/commands.c @@ -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;