summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-07-22 08:48:23 -0400
committerDana Jansens <danakj@orodu.net>2007-07-22 08:53:15 -0400
commit64c59b7456bb99293e0c4c95871bed4361c9bd36 (patch)
treefdaac6f2b6863e263dce09d60fdf4b8925feec8e
parent6066a338fda51d488af2f4b98416daa192fcb1c6 (diff)
for MoveResizeTo make <width>current</width> and <height>current</height> and <monitor>current</monitor> work like <x> and <y>
-rw-r--r--openbox/actions/moveresizeto.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/openbox/actions/moveresizeto.c b/openbox/actions/moveresizeto.c
index 3ecf41ad..48b6e3bf 100644
--- a/openbox/actions/moveresizeto.c
+++ b/openbox/actions/moveresizeto.c
@@ -66,13 +66,25 @@ static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node)
if ((n = parse_find_node("y", node)))
parse_coord(doc, n, &o->y, &o->yopposite, &o->ycenter);
- if ((n = parse_find_node("width", node)))
- o->w = parse_int(doc, n);
- if ((n = parse_find_node("height", node)))
- o->h = parse_int(doc, n);
+ if ((n = parse_find_node("width", node))) {
+ gchar *s = parse_string(doc, n);
+ if (g_ascii_strcasecmp(s, "current") != 0)
+ o->w = parse_int(doc, n);
+ g_free(s);
+ }
+ if ((n = parse_find_node("height", node))) {
+ gchar *s = parse_string(doc, n);
+ if (g_ascii_strcasecmp(s, "current") != 0)
+ o->h = parse_int(doc, n);
+ g_free(s);
+ }
- if ((n = parse_find_node("monitor", node)))
- o->monitor = parse_int(doc, n) - 1;
+ if ((n = parse_find_node("monitor", node))) {
+ gchar *s = parse_string(doc, n);
+ if (g_ascii_strcasecmp(s, "current") != 0)
+ o->monitor = parse_int(doc, n) - 1;
+ g_free(s);
+ }
return o;
}