]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: skip restart_mode swallow specifications
authorMichael Stapelberg <michael@stapelberg.de>
Wed, 25 Mar 2015 19:49:19 +0000 (20:49 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Wed, 25 Mar 2015 19:50:25 +0000 (20:50 +0100)
Otherwise, placeholder windows would accumulate these over restarts. The
worst part is that they don’t get dumped properly, meaning an empty
swallows specification ends up in the state, which matches any window,
so other random windows would be matched into the placeholder (e.g.
i3bar).

fixes #1502

src/ipc.c

index acd2267bdb61f761f34511d3adaf3bec7afcff50..ff2cd820c91ac267f526c94ab4822d555ad45e9e 100644 (file)
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -450,6 +450,10 @@ void dump_node(yajl_gen gen, struct Con *con, bool inplace_restart) {
     y(array_open);
     Match *match;
     TAILQ_FOREACH(match, &(con->swallow_head), matches) {
+        /* We will generate a new restart_mode match specification after this
+         * loop, so skip this one. */
+        if (match->restart_mode)
+            continue;
         y(map_open);
         if (match->dock != -1) {
             ystr("dock");