Merge branch 'master' into next

Conflicts:
	debian/changelog
This commit is contained in:
Michael Stapelberg 2011-12-17 15:28:51 +00:00
commit db174234ce
3 changed files with 65 additions and 1 deletions

20
debian/changelog vendored
View File

@ -1,8 +1,26 @@
i3-wm (4.1.1-0) unstable; urgency=low i3-wm (4.1.1-0) unstable; urgency=low
* NOT YET RELEASED * NOT YET RELEASED
* 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: Dont 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: Dont 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> Fri, 11 Nov 2011 23:00:04 +0000 -- Michael Stapelberg <michael@stapelberg.de> Sat, 17 Dec 2011 14:29:59 +0000
i3-wm (4.1-1) unstable; urgency=low i3-wm (4.1-1) unstable; urgency=low

View File

@ -436,6 +436,13 @@ restart:
focus: focus:
TOK_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; owindow *current;
if (match_is_empty(&current_match)) { if (match_is_empty(&current_match)) {
@ -486,6 +493,13 @@ focus:
} }
| TOK_FOCUS direction | 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; int direction = $2;
switch (direction) { switch (direction) {
case TOK_LEFT: case TOK_LEFT:
@ -513,6 +527,13 @@ focus:
} }
| TOK_FOCUS window_mode | 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: "); printf("should focus: ");
if ($2 == TOK_TILING) if ($2 == TOK_TILING)
@ -545,6 +566,13 @@ focus:
} }
| TOK_FOCUS level | 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) if ($2 == TOK_PARENT)
level_up(); level_up();
else level_down(); else level_down();

View 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 # clean up the workspace so that it will be cleaned when switching away
cmd 'kill' for (@{get_ws_content($tmp)}); 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; done_testing;