Explicitly set current border width when BS_PIXEL
Patch status: merged
Patch by Tony Crisci
Long description:
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
To apply this patch, use:
curl http://cr.i3wm.org/patch/612/raw.patch | git am
b/src/manage.c
| 19 |
@@ -455,6 +455,14 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki |
| 20 |
floating_enable(nc, automatic_border); |
| 21 |
} |
| 22 |
|
| 23 |
+ if (nc->border_style == BS_PIXEL) {
|
| 24 |
+ /* if the border style is BS_PIXEL, explicitly set the border width of |
| 25 |
+ * the new container */ |
| 26 |
+ nc->current_border_width = (want_floating ? |
| 27 |
+ config.default_floating_border_width : |
| 28 |
+ config.default_border_width); |
| 29 |
+ } |
| 30 |
+ |
| 31 |
/* to avoid getting an UnmapNotify event due to reparenting, we temporarily |
| 32 |
* declare no interest in any state change event of this window */ |
| 33 |
values[0] = XCB_NONE; |
b/testcases/t/174-border-config.t
| 38 |
@@ -66,7 +66,7 @@ $first = open_window; |
| 39 |
@content = @{get_ws_content($tmp)};
|
| 40 |
ok(@content == 1, 'one container opened'); |
| 41 |
is($content[0]->{border}, 'pixel', 'border pixel by default');
|
| 42 |
-is($content[0]->{current_border_width}, -1, 'border width pixels -1 (default)');
|
| 43 |
+is($content[0]->{current_border_width}, 1, 'border width pixels 1 (default)');
|
| 44 |
|
| 45 |
exit_gracefully($pid); |
| 46 |
|