]> git.sur5r.net Git - i3/i3/commitdiff
Merge branch 'master' into next
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 17 Dec 2011 15:28:51 +0000 (15:28 +0000)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 17 Dec 2011 15:28:51 +0000 (15:28 +0000)
Conflicts:
debian/changelog

debian/changelog
src/cmdparse.y
testcases/t/100-fullscreen.t

index 349911075937184436ce0e2cca77fae7afd44b48..e9f9d43d4e590e304666b5dfe57d9866f239e7fd 100644 (file)
@@ -1,8 +1,26 @@
 i3-wm (4.1.1-0) unstable; urgency=low
 
   * NOT YET RELEASED
-
- -- Michael Stapelberg <michael@stapelberg.de>  Fri, 11 Nov 2011 23:00:04 +0000
+  * ipc: set CLOEXEC on client file descriptors
+  * Fix prototype in include/xcursor.h
+  * Bugfix: Skip dock clients when handling FocusIn events
+  * Bugfix: Fix fullscreen with floating windows
+  * Bugfix: Fix startup when RandR is not present
+  * Bugfix: Retain window position and size when changing floating border
+  * Bugfix: Disallow focusing dock clients via criteria
+  * Bugfix: Don’t create a workspace named 'back_and_forth' on startup
+  * Bugfix: Fix wrong focus in complex tabbed/stacked layouts
+  * Bugfix: Fix resizing for (e.g.) v-split containers in h-split containers
+  * Bugfix: Fix 'resize' command in nested containers
+  * Bugfix: Don’t set the _NET_WM_WORKAREA hint at all
+  * Bugfix: Skip leading whitespace in variable assignments
+  * Bugfix: Make resizing of tiling windows with floating_modifier use absolute
+    coordinates
+  * Bugfix: Make resizing work when pressing floating_modifier + right mouse
+    button on window decorations
+  * Bugfix: Fix setting the same mark repeatedly on different windows
+
+ -- Michael Stapelberg <michael@stapelberg.de>  Sat, 17 Dec 2011 14:29:59 +0000
 
 i3-wm (4.1-1) unstable; urgency=low
 
index 7ce5c2dfcdc581bff4defa299148ba9d15144e37..d01ca23232807ddf6af0739eb779826c39533c31 100644 (file)
@@ -436,6 +436,13 @@ restart:
 focus:
     TOK_FOCUS
     {
+        if (focused &&
+            focused->type != CT_WORKSPACE &&
+            focused->fullscreen_mode != CF_NONE) {
+            LOG("Cannot change focus while in fullscreen mode.\n");
+            break;
+        }
+
         owindow *current;
 
         if (match_is_empty(&current_match)) {
@@ -486,6 +493,13 @@ focus:
     }
     | TOK_FOCUS direction
     {
+        if (focused &&
+            focused->type != CT_WORKSPACE &&
+            focused->fullscreen_mode != CF_NONE) {
+            LOG("Cannot change focus while in fullscreen mode.\n");
+            break;
+        }
+
         int direction = $2;
         switch (direction) {
             case TOK_LEFT:
@@ -513,6 +527,13 @@ focus:
     }
     | TOK_FOCUS window_mode
     {
+        if (focused &&
+            focused->type != CT_WORKSPACE &&
+            focused->fullscreen_mode != CF_NONE) {
+            LOG("Cannot change focus while in fullscreen mode.\n");
+            break;
+        }
+
         printf("should focus: ");
 
         if ($2 == TOK_TILING)
@@ -545,6 +566,13 @@ focus:
     }
     | TOK_FOCUS level
     {
+        if (focused &&
+            focused->type != CT_WORKSPACE &&
+            focused->fullscreen_mode != CF_NONE) {
+            LOG("Cannot change focus while in fullscreen mode.\n");
+            break;
+        }
+
         if ($2 == TOK_PARENT)
             level_up();
         else level_down();
index cc893adc3723a1b9e2aca6cfe71bd20286672141..f8fc92a24aee749c58bbd58d31c3383e6a3d8e86 100644 (file)
@@ -156,4 +156,22 @@ is(fullscreen_windows(), 0, 'amount of fullscreen windows after fullscreen comma
 # clean up the workspace so that it will be cleaned when switching away
 cmd 'kill' for (@{get_ws_content($tmp)});
 
+################################################################################
+# Verify that changing focus while in fullscreen does not work.
+################################################################################
+
+$tmp = fresh_workspace;
+
+my $other = open_window;
+is($x->input_focus, $other->id, 'other window focused');
+
+$window = open_window;
+is($x->input_focus, $window->id, 'window focused');
+
+cmd 'fullscreen';
+is($x->input_focus, $window->id, 'fullscreen window focused');
+
+cmd 'focus left';
+is($x->input_focus, $window->id, 'fullscreen window still focused');
+
 done_testing;