summaryrefslogtreecommitdiff
path: root/openbox/config.c
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@comhem.se>2006-06-08 11:36:43 +0000
committerMikael Magnusson <mikachu@comhem.se>2006-06-08 11:36:43 +0000
commitde1559a09497ae4ead44a6e70b556123a5bab35c (patch)
treecf4576cf08322f3e7428d7bbdcbdd21e124554f3 /openbox/config.c
parentf80ab241f31676d8ae5377d62986ee793dc27ca7 (diff)
move stuff around some more
Diffstat (limited to 'openbox/config.c')
-rw-r--r--openbox/config.c49
1 files changed, 27 insertions, 22 deletions
diff --git a/openbox/config.c b/openbox/config.c
index fcff4a09..dd8d2b83 100644
--- a/openbox/config.c
+++ b/openbox/config.c
@@ -22,7 +22,6 @@
#include "mouse.h"
#include "prop.h"
#include "translate.h"
-#include "per_app_settings.h"
#include "parser/parse.h"
#include "openbox.h"
@@ -119,59 +118,65 @@ static void parse_per_app_settings(ObParseInst *i, xmlDocPtr doc,
gchar *name;
while (app) {
+ gboolean x_pos_given = FALSE;
if (parse_attr_string("name", app, &name)) {
xmlNodePtr n, c;
- ObAppSetting *setting = g_new0(ObAppSetting, 1);
- setting->name = name;
+ ObAppSettings *settings = g_new0(ObAppSetting, 1);
+ settings->name = name;
- setting->decor = TRUE;
+ settings->decor = TRUE;
if ((n = parse_find_node("decor", app->children)))
- setting->decor = parse_bool(doc, n);
+ settings->decor = parse_bool(doc, n);
if ((n = parse_find_node("shade", app->children)))
- setting->shade = parse_bool(doc, n);
+ settings->shade = parse_bool(doc, n);
- setting->position.x = setting->position.y = -1;
+ settings->position.x = settings->position.y = 0;
+ settings->pos_given = FALSE;
if ((n = parse_find_node("position", app->children))) {
if ((c = parse_find_node("x", n->children))) {
if (!strcmp(parse_string(doc, c), "center")) {
- setting->center_x = TRUE;
+ settings->center_x = TRUE;
+ x_pos_given = TRUE;
+ } else {
+ settings->position.x = parse_int(doc, c);
+ x_pos_given = TRUE;
}
- else
- setting->position.x = parse_int(doc, c);
}
- if ((c = parse_find_node("y", n->children))) {
+ if (x_pos_given && (c = parse_find_node("y", n->children))) {
if (!strcmp(parse_string(doc, c), "center")) {
- setting->center_y = TRUE;
+ settings->center_y = TRUE;
+ settings->pos_given;
+ } else {
+ settings->position.y = parse_int(doc, c);
+ settings->pos_given;
}
- else
- setting->position.y = parse_int(doc, c);
}
}
if ((n = parse_find_node("focus", app->children)))
- setting->focus = parse_bool(doc, n);
+ settings->focus = parse_bool(doc, n);
if ((n = parse_find_node("desktop", app->children)))
- setting->desktop = parse_int(doc, n);
+ settings->desktop = parse_int(doc, n);
else
- setting->desktop = -1;
+ settings->desktop = -1;
if ((n = parse_find_node("head", app->children))) {
if (!strcmp(parse_string(doc, n), "mouse"))
- setting->head = -1;
+ settings->head = -1;
else
- setting->head = parse_int(doc, n);
+ settings->head = parse_int(doc, n);
}
if ((n = parse_find_node("layer", app->children))) {
if (!strcmp(parse_string(doc, n), "above"))
- setting->layer = 1;
+ settings->layer = 1;
else if (!strcmp(parse_string(doc, n), "below"))
- setting->layer = -1;
+ settings->layer = -1;
else
- setting->layer = 0;
+ settings->layer = 0;
}
config_per_app_settings = g_slist_append(config_per_app_settings,