Explicitly set current border width when BS_PIXEL

When a window becomes managed, if the config specifies a pixel border
style, explicitly set the current border width so it does not change
when the container changes from tiling to floating.

fixes #1266
This commit is contained in:
Tony Crisci 2014-06-27 21:20:12 -04:00 committed by Michael Stapelberg
parent 3b546d00f7
commit 7afe9cc78b
2 changed files with 7 additions and 1 deletions

View File

@ -450,6 +450,12 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
} }
} }
if (nc->border_style == BS_PIXEL) {
/* if the border style is BS_PIXEL, explicitly set the border width of
* the new container */
nc->current_border_width = (want_floating ? config.default_floating_border_width : config.default_border_width);
}
/* to avoid getting an UnmapNotify event due to reparenting, we temporarily /* to avoid getting an UnmapNotify event due to reparenting, we temporarily
* declare no interest in any state change event of this window */ * declare no interest in any state change event of this window */
values[0] = XCB_NONE; values[0] = XCB_NONE;

View File

@ -66,7 +66,7 @@ $first = open_window;
@content = @{get_ws_content($tmp)}; @content = @{get_ws_content($tmp)};
ok(@content == 1, 'one container opened'); ok(@content == 1, 'one container opened');
is($content[0]->{border}, 'pixel', 'border pixel by default'); is($content[0]->{border}, 'pixel', 'border pixel by default');
is($content[0]->{current_border_width}, -1, 'border width pixels -1 (default)'); is($content[0]->{current_border_width}, 1, 'border width pixels 1 (default)');
exit_gracefully($pid); exit_gracefully($pid);