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)
{