properly serialize floating/scratchpad state when restarting
This commit is contained in:
parent
ec7ed75c01
commit
91499ed2c7
16
src/ipc.c
16
src/ipc.c
|
@ -274,6 +274,22 @@ void dump_node(yajl_gen gen, struct Con *con, bool inplace_restart) {
|
|||
ystr("fullscreen_mode");
|
||||
y(integer, con->fullscreen_mode);
|
||||
|
||||
ystr("floating");
|
||||
switch (con->floating) {
|
||||
case FLOATING_AUTO_OFF:
|
||||
ystr("auto_off");
|
||||
break;
|
||||
case FLOATING_AUTO_ON:
|
||||
ystr("auto_on");
|
||||
break;
|
||||
case FLOATING_USER_OFF:
|
||||
ystr("user_off");
|
||||
break;
|
||||
case FLOATING_USER_ON:
|
||||
ystr("user_on");
|
||||
break;
|
||||
}
|
||||
|
||||
ystr("swallows");
|
||||
y(array_open);
|
||||
Match *match;
|
||||
|
|
|
@ -156,6 +156,28 @@ static int json_string(void *ctx, const unsigned char *val, unsigned int len) {
|
|||
char *buf = NULL;
|
||||
sasprintf(&buf, "%.*s", (int)len, val);
|
||||
json_node->mark = buf;
|
||||
} else if (strcasecmp(last_key, "floating") == 0) {
|
||||
char *buf = NULL;
|
||||
sasprintf(&buf, "%.*s", (int)len, val);
|
||||
if (strcasecmp(buf, "auto_off") == 0)
|
||||
json_node->floating = FLOATING_AUTO_OFF;
|
||||
else if (strcasecmp(buf, "auto_on") == 0)
|
||||
json_node->floating = FLOATING_AUTO_ON;
|
||||
else if (strcasecmp(buf, "user_off") == 0)
|
||||
json_node->floating = FLOATING_USER_OFF;
|
||||
else if (strcasecmp(buf, "user_on") == 0)
|
||||
json_node->floating = FLOATING_USER_ON;
|
||||
free(buf);
|
||||
} else if (strcasecmp(last_key, "scratchpad_state") == 0) {
|
||||
char *buf = NULL;
|
||||
sasprintf(&buf, "%.*s", (int)len, val);
|
||||
if (strcasecmp(buf, "none") == 0)
|
||||
json_node->scratchpad_state = SCRATCHPAD_NONE;
|
||||
else if (strcasecmp(buf, "fresh") == 0)
|
||||
json_node->scratchpad_state = SCRATCHPAD_FRESH;
|
||||
else if (strcasecmp(buf, "changed") == 0)
|
||||
json_node->scratchpad_state = SCRATCHPAD_CHANGED;
|
||||
free(buf);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
|
|
@ -46,6 +46,7 @@ my $expected = {
|
|||
swallows => $ignore,
|
||||
percent => undef,
|
||||
layout => 'default',
|
||||
floating => 'auto_off',
|
||||
scratchpad_state => 'none',
|
||||
focus => $ignore,
|
||||
focused => JSON::XS::false,
|
||||
|
|
Loading…
Reference in New Issue