]> git.sur5r.net Git - i3/i3/commitdiff
bugfix: don’t clean up workspace when switching to the same workspace
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 9 May 2010 21:20:49 +0000 (23:20 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 9 May 2010 21:20:49 +0000 (23:20 +0200)
src/workspace.c
testcases/t/17-workspace.t

index 9b5593d6500e073bc88794dd2041a30d1eb871b4..1829370cf542d697825783ef2cc5da362c9b3080 100644 (file)
@@ -101,6 +101,8 @@ void workspace_show(const char *num) {
     old = con_get_workspace(focused);
 
     workspace = workspace_get(num);
+    if (workspace == old)
+        return;
     workspace->fullscreen_mode = CF_OUTPUT;
     /* disable fullscreen */
     TAILQ_FOREACH(current, &(workspace->parent->nodes_head), nodes)
index c350d9d9e45600de8391dcc6ff64998ac773f2b6..bb30bd024e614ed1be55583abcde72a082f575e3 100644 (file)
@@ -4,7 +4,7 @@
 # Tests whether we can switch to a non-existant workspace
 # (necessary for further tests)
 #
-use i3test tests => 2;
+use i3test tests => 3;
 use v5.10;
 
 my $i3 = i3("/tmp/nestedcons");
@@ -33,4 +33,9 @@ diag("Other temporary workspace name: $otmp\n");
 $i3->command("workspace $otmp")->recv;
 ok(!workspace_exists($tmp), 'old workspace cleaned up');
 
+# Switch to the same workspace again to make sure it doesn’t get cleaned up
+$i3->command("workspace $otmp")->recv;
+$i3->command("workspace $otmp")->recv;
+ok(workspace_exists($otmp), 'other workspace still exists');
+
 diag( "Testing i3, Perl $], $^X" );