bugfix: default floating border regression

Fixes a bug where a normal floating default border is not applied when
the default tiling border is set to a pixel value.

This bug was introduced in this commit:

43b447855d

Consider motif border for floating geometry

Fixes a comment that claimed default floating border could override
motif hints, which was never the case.

fixes #1305
next
Tony Crisci 2014-07-07 18:42:15 -04:00 committed by Michael Stapelberg
parent b7f4ac769b
commit 196e748e94
2 changed files with 46 additions and 4 deletions

View File

@ -447,10 +447,9 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
if (want_floating) {
DLOG("geometry = %d x %d\n", nc->geometry.width, nc->geometry.height);
/* motif hints will be applied only when `new_float` is `normal` or not
* specified */
bool automatic_border = (config.default_floating_border != BS_NORMAL &&
motif_border_style == BS_NORMAL);
/* automatically set the border to the default value if a motif border
* was not specified */
bool automatic_border = (motif_border_style == BS_NORMAL);
floating_enable(nc, automatic_border);
}

View File

@ -0,0 +1,43 @@
#!perl
# vim:ts=4:sw=4:expandtab
#
# Please read the following documents before working on tests:
# • http://build.i3wm.org/docs/testsuite.html
# (or docs/testsuite)
#
# • http://build.i3wm.org/docs/lib-i3test.html
# (alternatively: perldoc ./testcases/lib/i3test.pm)
#
# • http://build.i3wm.org/docs/ipc.html
# (or docs/ipc)
#
# • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf
# (unless you are already familiar with Perl)
#
# This is a regression test for a bug where a normal floating default border is
# not applied when the default tiling border is set to a pixel value.
# Ticket: #1305
# Bug still in: 4.8-62-g7381b50
use i3test i3_autostart => 0;
my $config = <<EOT;
# i3 config file (v4)
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
new_window pixel 5
new_float normal
EOT
my $pid = launch_with_config($config);
my $ws = fresh_workspace;
my $float_window = open_floating_window;
my @floating = @{get_ws($ws)->{floating_nodes}};
is($floating[0]->{nodes}[0]->{border}, 'normal', 'default floating border is `normal`');
exit_gracefully($pid);
done_testing;