Bugfix: Obey workspace_layout when re-inserting floating containers (+test) (Thanks aksr)
The code wasn’t using con_attach and therefore didn’t obey workspace_layout. Fixes: #631
This commit is contained in:
parent
714c8fcbe7
commit
4f98bbf5ff
|
@ -238,11 +238,10 @@ void floating_disable(Con *con, bool automatic) {
|
||||||
/* con_fix_percent will adjust the percent value */
|
/* con_fix_percent will adjust the percent value */
|
||||||
con->percent = 0.0;
|
con->percent = 0.0;
|
||||||
|
|
||||||
TAILQ_INSERT_TAIL(&(con->parent->nodes_head), con, nodes);
|
|
||||||
TAILQ_INSERT_TAIL(&(con->parent->focus_head), con, focused);
|
|
||||||
|
|
||||||
con->floating = FLOATING_USER_OFF;
|
con->floating = FLOATING_USER_OFF;
|
||||||
|
|
||||||
|
con_attach(con, con->parent, false);
|
||||||
|
|
||||||
con_fix_percent(con->parent);
|
con_fix_percent(con->parent);
|
||||||
// TODO: don’t influence focus handling when Con was not focused before.
|
// TODO: don’t influence focus handling when Con was not focused before.
|
||||||
con_focus(con);
|
con_focus(con);
|
||||||
|
|
|
@ -122,6 +122,24 @@ is($content[1]->{layout}, 'stacked', 'layout stacked');
|
||||||
is(@content, 1, 'one con on target workspace');
|
is(@content, 1, 'one con on target workspace');
|
||||||
is($content[0]->{layout}, 'stacked', 'layout stacked');
|
is($content[0]->{layout}, 'stacked', 'layout stacked');
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# 7: toggle floating mode and check that we have a stacked con when
|
||||||
|
# re-inserting a floating container.
|
||||||
|
#####################################################################
|
||||||
|
|
||||||
|
$tmp = fresh_workspace;
|
||||||
|
|
||||||
|
$first = open_window;
|
||||||
|
cmd 'floating toggle';
|
||||||
|
cmd 'floating toggle';
|
||||||
|
|
||||||
|
$second = open_window;
|
||||||
|
|
||||||
|
is($x->input_focus, $second->id, 'second window focused');
|
||||||
|
@content = @{get_ws_content($tmp)};
|
||||||
|
ok(@content == 1, 'one con at workspace level');
|
||||||
|
is($content[0]->{layout}, 'stacked', 'layout stacked');
|
||||||
|
|
||||||
exit_gracefully($pid);
|
exit_gracefully($pid);
|
||||||
|
|
||||||
done_testing;
|
done_testing;
|
||||||
|
|
Loading…
Reference in New Issue