]> git.sur5r.net Git - i3/i3/commitdiff
fix percentages when loading layouts
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 4 Jan 2014 20:30:51 +0000 (21:30 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 4 Jan 2014 20:30:51 +0000 (21:30 +0100)
This is more forgiving for users who delete containers from their layout
file and don’t update the “percent” values.

src/load_layout.c

index d0772aa398ab47a1ae2363bacf4a33dd6da3c1d7..fe21ee81d4f6578885f38c6c38fd33ea6f393d2b 100644 (file)
@@ -90,7 +90,12 @@ static int json_end_map(void *ctx) {
 
 static int json_end_array(void *ctx) {
     LOG("end of array\n");
-    parsing_swallows = false;
+    if (!parsing_swallows && !parsing_focus) {
+        con_fix_percent(json_node);
+    }
+    if (parsing_swallows) {
+        parsing_swallows = false;
+    }
     if (parsing_focus) {
         /* Clear the list of focus mappings */
         struct focus_mapping *mapping;
@@ -380,7 +385,6 @@ static int json_double(void *ctx, double val) {
 }
 
 void tree_append_json(const char *filename) {
-    /* TODO: percent of other windows are not correctly fixed at the moment */
     FILE *f;
     if ((f = fopen(filename, "r")) == NULL) {
         LOG("Cannot open file \"%s\"\n", filename);