} Options;
static gpointer setup_func(xmlNodePtr node);
+static void free_func(gpointer o);
static gboolean run_func(ObActionsData *data, gpointer options);
/* 3.4-compatibility */
static gpointer setup_center_func(xmlNodePtr node);
void action_moveresizeto_startup(void)
{
- actions_register("MoveResizeTo", setup_func, g_free, run_func, NULL, NULL);
-/* 3.4-compatibility */
- actions_register("MoveToCenter", setup_center_func, g_free, run_func,
- NULL, NULL);
+ actions_register("MoveResizeTo", setup_func, free_func, run_func);
+ /* 3.4-compatibility */
+ actions_register("MoveToCenter", setup_center_func, free_func, run_func);
}
static void parse_coord(xmlNodePtr n, gint *pos,
gboolean *opposite, gboolean *center)
{
- gchar *s = obt_parse_node_string(n);
+ gchar *s = obt_xml_node_string(n);
if (g_ascii_strcasecmp(s, "current") != 0) {
if (!g_ascii_strcasecmp(s, "center"))
*center = TRUE;
xmlNodePtr n;
Options *o;
- o = g_new0(Options, 1);
+ o = g_slice_new0(Options);
o->x = G_MININT;
o->y = G_MININT;
o->w = G_MININT;
o->h = G_MININT;
o->monitor = CURRENT_MONITOR;
- if ((n = obt_parse_find_node(node, "x")))
+ if ((n = obt_xml_find_node(node, "x")))
parse_coord(n, &o->x, &o->xopposite, &o->xcenter);
- if ((n = obt_parse_find_node(node, "y")))
+ if ((n = obt_xml_find_node(node, "y")))
parse_coord(n, &o->y, &o->yopposite, &o->ycenter);
- if ((n = obt_parse_find_node(node, "width"))) {
- gchar *s = obt_parse_node_string(n);
+ if ((n = obt_xml_find_node(node, "width"))) {
+ gchar *s = obt_xml_node_string(n);
if (g_ascii_strcasecmp(s, "current") != 0)
- o->w = obt_parse_node_int(n);
+ o->w = obt_xml_node_int(n);
g_free(s);
}
- if ((n = obt_parse_find_node(node, "height"))) {
- gchar *s = obt_parse_node_string(n);
+ if ((n = obt_xml_find_node(node, "height"))) {
+ gchar *s = obt_xml_node_string(n);
if (g_ascii_strcasecmp(s, "current") != 0)
- o->h = obt_parse_node_int(n);
+ o->h = obt_xml_node_int(n);
g_free(s);
}
- if ((n = obt_parse_find_node(node, "monitor"))) {
- gchar *s = obt_parse_node_string(n);
+ if ((n = obt_xml_find_node(node, "monitor"))) {
+ gchar *s = obt_xml_node_string(n);
if (g_ascii_strcasecmp(s, "current") != 0) {
if (!g_ascii_strcasecmp(s, "all"))
o->monitor = ALL_MONITORS;
else if(!g_ascii_strcasecmp(s, "prev"))
o->monitor = PREV_MONITOR;
else
- o->monitor = obt_parse_node_int(n) - 1;
+ o->monitor = obt_xml_node_int(n) - 1;
}
g_free(s);
}
return o;
}
+static void free_func(gpointer o)
+{
+ g_slice_free(Options, o);
+}
+
/* Always return FALSE because its not interactive */
static gboolean run_func(ObActionsData *data, gpointer options)
{
client_configure(c, x, y, w, h, TRUE, TRUE, FALSE);
actions_client_move(data, FALSE);
- g_free(area);
- g_free(carea);
+ g_slice_free(Rect, area);
+ g_slice_free(Rect, carea);
}
return FALSE;
{
Options *o;
- o = g_new0(Options, 1);
+ o = g_slice_new0(Options);
o->x = G_MININT;
o->y = G_MININT;
o->w = G_MININT;