summaryrefslogtreecommitdiff
path: root/openbox/actions/growtoedge.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-07-19 15:34:08 -0400
committerDana Jansens <danakj@orodu.net>2007-07-19 15:34:08 -0400
commit730062cac9fdb38a3df332fdff06ce7ec9742fe8 (patch)
tree1cdf2566d767093b26c08abcece50f073933882e /openbox/actions/growtoedge.c
parent52480d87e4e6ca3cb9731748847e11e80af40f47 (diff)
fix growtoedge so it doesn't move terminal windows around
Diffstat (limited to 'openbox/actions/growtoedge.c')
-rw-r--r--openbox/actions/growtoedge.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/openbox/actions/growtoedge.c b/openbox/actions/growtoedge.c
index fffcc4e0..501c64de 100644
--- a/openbox/actions/growtoedge.c
+++ b/openbox/actions/growtoedge.c
@@ -63,7 +63,7 @@ static gboolean run_func(ObActionsData *data, gpointer options)
Options *o = options;
if (data->client) {
- gint x, y, w, h;
+ gint x, y, w, h, realw, realh, lw, lh;
/* don't allow vertical resize if shaded */
if (o->dir != OB_DIRECTION_NORTH || o->dir != OB_DIRECTION_SOUTH ||
@@ -71,12 +71,21 @@ static gboolean run_func(ObActionsData *data, gpointer options)
{
client_find_resize_directional(data->client, o->dir, TRUE,
&x, &y, &w, &h);
+ realw = w;
+ realh = h;
+ client_try_configure(data->client, &x, &y, &realw, &realh,
+ &lw, &lh, TRUE);
+ /* if it's going to be resized smaller than it intended, don't
+ move the window over */
+ if (x != data->client->area.x) x += w - realw;
+ if (y != data->client->area.y) y += h - realh;
+
if (x != data->client->area.x || y != data->client->area.y ||
w != data->client->area.width ||
h != data->client->area.height)
{
actions_client_move(data, TRUE);
- client_move_resize(data->client, x, y, w, h);
+ client_move_resize(data->client, x, y, realw, realh);
actions_client_move(data, FALSE);
}
}