Bugfix: Correctly parse the 'focused' (it’s a bool, no longer int) when restoring layout (Thanks andi)

This commit is contained in:
Michael Stapelberg 2011-08-04 22:58:19 +02:00
parent 93f475778f
commit 7e0cbf18f9
1 changed files with 10 additions and 8 deletions

View File

@ -157,20 +157,12 @@ static int json_int(void *ctx, long long val) {
static int json_int(void *ctx, long val) { static int json_int(void *ctx, long val) {
#endif #endif
LOG("int %d for key %s\n", val, last_key); LOG("int %d for key %s\n", val, last_key);
// TODO: remove this after the next preview release
if (strcasecmp(last_key, "layout") == 0) {
json_node->layout = val;
}
if (strcasecmp(last_key, "type") == 0) { if (strcasecmp(last_key, "type") == 0) {
json_node->type = val; json_node->type = val;
} }
if (strcasecmp(last_key, "fullscreen_mode") == 0) { if (strcasecmp(last_key, "fullscreen_mode") == 0) {
json_node->fullscreen_mode = val; json_node->fullscreen_mode = val;
} }
if (strcasecmp(last_key, "focused") == 0 && val == 1) {
to_focus = json_node;
}
if (strcasecmp(last_key, "num") == 0) if (strcasecmp(last_key, "num") == 0)
json_node->num = val; json_node->num = val;
@ -208,6 +200,15 @@ static int json_int(void *ctx, long val) {
return 1; return 1;
} }
static int json_bool(void *ctx, int val) {
LOG("bool %d for key %s\n", val, last_key);
if (strcasecmp(last_key, "focused") == 0 && val) {
to_focus = json_node;
}
return 1;
}
static int json_double(void *ctx, double val) { static int json_double(void *ctx, double val) {
LOG("double %f for key %s\n", val, last_key); LOG("double %f for key %s\n", val, last_key);
if (strcasecmp(last_key, "percent") == 0) { if (strcasecmp(last_key, "percent") == 0) {
@ -237,6 +238,7 @@ void tree_append_json(const char *filename) {
callbacks.yajl_map_key = json_key; callbacks.yajl_map_key = json_key;
callbacks.yajl_integer = json_int; callbacks.yajl_integer = json_int;
callbacks.yajl_double = json_double; callbacks.yajl_double = json_double;
callbacks.yajl_boolean = json_bool;
#if YAJL_MAJOR >= 2 #if YAJL_MAJOR >= 2
g = yajl_gen_alloc(NULL); g = yajl_gen_alloc(NULL);
hand = yajl_alloc(&callbacks, NULL, (void*)g); hand = yajl_alloc(&callbacks, NULL, (void*)g);