From: Dana Jansens Date: Sat, 4 Aug 2007 18:45:03 +0000 (-0400) Subject: Merge branch 'backport' into 3.4-working X-Git-Tag: release-3.4.4~3 X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=1f5026f3974b64cda81773c3574ba788fd12ec80;p=dana%2Fopenbox.git Merge branch 'backport' into 3.4-working --- 1f5026f3974b64cda81773c3574ba788fd12ec80 diff --cc openbox/actions/growtoedge.c index 774798e1,2e2b7011..11ea2fa8 --- a/openbox/actions/growtoedge.c +++ b/openbox/actions/growtoedge.c @@@ -47,22 -50,38 +47,47 @@@ static gpointer setup_south_func(ObPars return o; } -static void free_func(gpointer options) +static gpointer setup_east_func(ObParseInst *i, + xmlDocPtr doc, xmlNodePtr node) { - Options *o = options; + Options *o = g_new0(Options, 1); + o->dir = OB_DIRECTION_EAST; + return o; +} - g_free(o); +static gpointer setup_west_func(ObParseInst *i, + xmlDocPtr doc, xmlNodePtr node) +{ + Options *o = g_new0(Options, 1); + o->dir = OB_DIRECTION_WEST; + return o; } + static gboolean do_grow(ObActionsData *data, gint x, gint y, gint w, gint h) + { + gint realw, realh, lw, lh; + + 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 || + realw != data->client->area.width || + realh != data->client->area.height) + { + actions_client_move(data, TRUE); + client_move_resize(data->client, x, y, realw, realh); + actions_client_move(data, FALSE); + return TRUE; + } + return FALSE; + } + /* Always return FALSE because its not interactive */ static gboolean run_func(ObActionsData *data, gpointer options) {