previous commit: extend test and code to also work with floating windows

This commit is contained in:
Michael Stapelberg 2013-10-13 17:57:50 +02:00
parent eef9042713
commit 1c0554564a
2 changed files with 27 additions and 2 deletions

View File

@ -367,8 +367,8 @@ void tree_close_con(kill_window_t kill_window) {
if (focused->type == CT_WORKSPACE) { if (focused->type == CT_WORKSPACE) {
DLOG("Workspaces cannot be close, closing all children instead\n"); DLOG("Workspaces cannot be close, closing all children instead\n");
Con *child, *nextchild; Con *child, *nextchild;
for (child = TAILQ_FIRST(&(focused->nodes_head)); child; ) { for (child = TAILQ_FIRST(&(focused->focus_head)); child; ) {
nextchild = TAILQ_NEXT(child, nodes); nextchild = TAILQ_NEXT(child, focused);
DLOG("killing child=%p\n", child); DLOG("killing child=%p\n", child);
tree_close(child, kill_window, false, false); tree_close(child, kill_window, false, false);
child = nextchild; child = nextchild;

View File

@ -143,6 +143,31 @@ sync_with_i3;
($nodes, $focus) = get_ws_content($tmp); ($nodes, $focus) = get_ws_content($tmp);
is(scalar @$nodes, 0, 'workspace is empty'); is(scalar @$nodes, 0, 'workspace is empty');
################################################################################
# check if killing a workspace also closes floating windows.
################################################################################
$tmp = fresh_workspace;
$window = open_window;
my $floating_window = open_floating_window;
# one window opened on the current workspace
($nodes, $focus) = get_ws_content($tmp);
is(scalar @$focus, 2, 'workspace contains two nodes');
# focus the workspace
cmd "focus parent";
cmd "focus parent";
# try to kill the workspace
cmd "kill";
sync_with_i3;
# the workspace should now be empty
($nodes, $focus) = get_ws_content($tmp);
is(scalar @$focus, 0, 'workspace is empty');
############################################################## ##############################################################
# and now for something completely different: # and now for something completely different:
# check if the pointer position is relevant when restoring focus # check if the pointer position is relevant when restoring focus