]> git.sur5r.net Git - i3/i3/blobdiff - src/cmdparse.y
Merge branch 'master' into next
[i3/i3] / src / cmdparse.y
index 092bea2d8ee6f5a9626d8f7ca5c0141c40ff7f30..7ce5c2dfcdc581bff4defa299148ba9d15144e37 100644 (file)
@@ -908,6 +908,14 @@ layout_mode:
 mark:
     TOK_MARK STR
     {
+        printf("Clearing all windows which have that mark first\n");
+
+        Con *con;
+        TAILQ_FOREACH(con, &all_cons, all_cons) {
+            if (con->mark && strcmp(con->mark, $2) == 0)
+                FREE(con->mark);
+        }
+
         printf("marking window with str %s\n", $2);
         owindow *current;
 
@@ -915,11 +923,9 @@ mark:
 
         TAILQ_FOREACH(current, &owindows, owindows) {
             printf("matching: %p / %s\n", current->con, current->con->name);
-            current->con->mark = sstrdup($2);
+            current->con->mark = $2;
         }
 
-        free($<string>2);
-
         tree_render();
     }
     ;