From: Michael Stapelberg Date: Fri, 12 Jun 2009 20:55:56 +0000 (+0200) Subject: Bugfix: When toggling floating, the copied size is the client’s size, not the total... X-Git-Tag: 3.b~62 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=cb12e205d9cb9e87ff4095d7aa3ae2cfe8328991;p=i3%2Fi3 Bugfix: When toggling floating, the copied size is the client’s size, not the total size --- diff --git a/src/floating.c b/src/floating.c index 181fbe34..6a2d8218 100644 --- a/src/floating.c +++ b/src/floating.c @@ -18,6 +18,7 @@ #include #include "i3.h" +#include "config.h" #include "data.h" #include "util.h" #include "xcb.h" @@ -45,6 +46,7 @@ static void drag_pointer(xcb_connection_t *conn, Client *client, xcb_button_pres */ void toggle_floating_mode(xcb_connection_t *conn, Client *client, bool automatic) { Container *con = client->container; + i3Font *font = load_font(conn, config.font); if (con == NULL) { LOG("This client is already in floating (container == NULL), re-inserting\n"); @@ -103,8 +105,11 @@ void toggle_floating_mode(xcb_connection_t *conn, Client *client, bool automatic client->floating_rect.y = client->rect.y; /* Copy the size the other direction */ - client->rect.width = client->floating_rect.width; - client->rect.height = client->floating_rect.height; + client->child_rect.width = client->floating_rect.width; + client->child_rect.height = client->floating_rect.height; + + client->rect.width = client->child_rect.width + 2 + 2; + client->rect.height = client->child_rect.height + (font->height + 2 + 2) + 2; LOG("copying size from tiling (%d, %d) size (%d, %d)\n", client->floating_rect.x, client->floating_rect.y, client->floating_rect.width, client->floating_rect.height);