ipc: make 'layout' a string
This commit is contained in:
parent
97e45b9cfc
commit
51bfdbf0a8
18
src/ipc.c
18
src/ipc.c
|
@ -202,7 +202,23 @@ void dump_node(yajl_gen gen, struct Con *con, bool inplace_restart) {
|
|||
y(integer, (con == focused));
|
||||
|
||||
ystr("layout");
|
||||
y(integer, con->layout);
|
||||
switch (con->layout) {
|
||||
case L_DEFAULT:
|
||||
ystr("default");
|
||||
break;
|
||||
case L_STACKED:
|
||||
ystr("stacked");
|
||||
break;
|
||||
case L_TABBED:
|
||||
ystr("tabbed");
|
||||
break;
|
||||
case L_DOCKAREA:
|
||||
ystr("dockarea");
|
||||
break;
|
||||
case L_OUTPUT:
|
||||
ystr("output");
|
||||
break;
|
||||
}
|
||||
|
||||
ystr("border");
|
||||
switch (con->border_style) {
|
||||
|
|
|
@ -131,6 +131,21 @@ static int json_string(void *ctx, const unsigned char *val, unsigned int len) {
|
|||
json_node->border_style = BS_NORMAL;
|
||||
else LOG("Unhandled \"border\": %s\n", buf);
|
||||
free(buf);
|
||||
} else if (strcasecmp(last_key, "layout") == 0) {
|
||||
char *buf = NULL;
|
||||
asprintf(&buf, "%.*s", (int)len, val);
|
||||
if (strcasecmp(buf, "default") == 0)
|
||||
json_node->layout = L_DEFAULT;
|
||||
else if (strcasecmp(buf, "stacked") == 0)
|
||||
json_node->layout = L_STACKED;
|
||||
else if (strcasecmp(buf, "tabbed") == 0)
|
||||
json_node->layout = L_TABBED;
|
||||
else if (strcasecmp(buf, "dockarea") == 0)
|
||||
json_node->layout = L_DOCKAREA;
|
||||
else if (strcasecmp(buf, "output") == 0)
|
||||
json_node->layout = L_OUTPUT;
|
||||
else LOG("Unhandled \"layout\": %s\n", buf);
|
||||
free(buf);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
@ -142,6 +157,7 @@ static int json_int(void *ctx, long long val) {
|
|||
static int json_int(void *ctx, long val) {
|
||||
#endif
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ my $expected = {
|
|||
geometry => ignore(),
|
||||
swallows => ignore(),
|
||||
percent => 0,
|
||||
layout => 0,
|
||||
layout => 'default',
|
||||
focus => ignore(),
|
||||
focused => 0,
|
||||
urgent => 0,
|
||||
|
|
Loading…
Reference in New Issue