diff options
author | Michael Stapelberg <michael@stapelberg.de> | 2014-01-05 20:10:24 +0100 |
---|---|---|
committer | Michael Stapelberg <michael@stapelberg.de> | 2014-01-05 20:10:24 +0100 |
commit | bb482e2869dd13e4199815af9ea833ca7dbae7d5 (patch) | |
tree | 6cf604e82315b4d4d3f0cbf348e9d828fc85d350 /i3-save-tree | |
parent | 2fea5ef82bd3528ed62681f9ac64f45830f4acdf (diff) | |
download | i3-bb482e2869dd13e4199815af9ea833ca7dbae7d5.tar.gz i3-bb482e2869dd13e4199815af9ea833ca7dbae7d5.zip |
i3-save-tree: only create "swallows" key for leaf nodes (Thanks xeen)
fixes #1149
Diffstat (limited to 'i3-save-tree')
-rwxr-xr-x | i3-save-tree | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/i3-save-tree b/i3-save-tree index 6ac3e1b1..53d67e99 100755 --- a/i3-save-tree +++ b/i3-save-tree @@ -1,7 +1,7 @@ #!/usr/bin/env perl # vim:ts=4:sw=4:expandtab # -# © 2013 Michael Stapelberg +# © 2013-2014 Michael Stapelberg # # Requires perl ≥ v5.10, AnyEvent::I3 and JSON::XS @@ -149,12 +149,15 @@ sub dump_containers { say "$ws// $desc with " . @{$tree->{nodes}} . " children"; } - # Turn “window_properties” into “swallows” expressions. - my $swallows = {}; - for my $property (keys %{$tree->{window_properties}}) { - $swallows->{$property} = '^' . quotemeta($tree->{window_properties}->{$property}) . '$'; + # Turn “window_properties” into “swallows” expressions, but only for leaf + # nodes. It only makes sense for leaf nodes to swallow anything. + if (leaf_node($tree)) { + my $swallows = {}; + for my $property (keys %{$tree->{window_properties}}) { + $swallows->{$property} = '^' . quotemeta($tree->{window_properties}->{$property}) . '$'; + } + $tree->{swallows} = [ $swallows ]; } - $tree->{swallows} = [ $swallows ]; delete $tree->{window_properties}; my @keys = sort keys %$tree; |