11diff --git a/include/config_directives.h b/include/config_directives.h
2- index e005709..185ea5c 100644
2+ index 0141b83..7093b18 100644
33--- a/include/config_directives.h
44+++ b/include/config_directives.h
5- @@ -71 ,7 +71 ,7 @@ CFGFUN(ipc_socket , const char *path );
6- CFGFUN(tiling_drag , const char *value );
5+ @@ -72 ,7 +72 ,7 @@ CFGFUN(tiling_drag , const char *value );
6+ CFGFUN(tiling_drag_swap_modifier , const char *modifiers );
77 CFGFUN(restart_state, const char *path);
88 CFGFUN(popup_during_fullscreen, const char *value);
99- CFGFUN(color, const char *colorclass, const char *border, const char *background, const char *text, const char *indicator, const char *child_border);
@@ -12,10 +12,10 @@ index e005709..185ea5c 100644
1212 CFGFUN(floating_modifier, const char *modifiers);
1313 CFGFUN(default_border, const char *windowtype, const char *border, const long width);
1414diff --git a/include/configuration.h b/include/configuration.h
15- index 843e156..985ea16 100644
15+ index c062ae4..6861806 100644
1616--- a/include/configuration.h
1717+++ b/include/configuration.h
18- @@ -244 ,7 +242 ,7 @@ struct Config {
18+ @@ -247 ,7 +247 ,7 @@ struct Config {
1919 struct Colortriple urgent;
2020 struct Colortriple placeholder;
2121 bool got_focused_tab_title;
@@ -25,10 +25,10 @@ index 843e156..985ea16 100644
2525 struct Colortriple focused;
2626 struct Colortriple unfocused;
2727diff --git a/include/data.h b/include/data.h
28- index 1b3c711..94b217d 100644
28+ index f448d26..3d4ae23 100644
2929--- a/include/data.h
3030+++ b/include/data.h
31- @@ -145 ,6 +145 ,24 @@ typedef enum {
31+ @@ -172 ,6 +172 ,24 @@ typedef enum {
3232 FOCUS_WRAPPING_WORKSPACE = 3
3333 } focus_wrapping_t;
3434
@@ -53,7 +53,7 @@ index 1b3c711..94b217d 100644
5353 /**
5454 * Stores a rectangle, for example the size of a window, the child window etc.
5555 *
56- @@ -411 ,6 +429 ,12 @@ struct Window {
56+ @@ -440 ,6 +458 ,12 @@ struct Window {
5757 /** The name of the window. */
5858 i3String *name;
5959
@@ -78,7 +78,7 @@ index fa915fd..cd6f801 100644
7878+ xmacro(_QUBES_LABEL) \
7979 xmacro(MANAGER)
8080diff --git a/include/window.h b/include/window.h
81- index 7b43ab1..39be137 100644
81+ index 49ef13c..24591be 100644
8282--- a/include/window.h
8383+++ b/include/window.h
8484@@ -40,6 +40,21 @@ void window_update_name(i3Window *win, xcb_get_property_reply_t *prop);
@@ -104,10 +104,10 @@ index 7b43ab1..39be137 100644
104104 * Updates the CLIENT_LEADER (logical parent window).
105105 *
106106diff --git a/parser-specs/config.spec b/parser-specs/config.spec
107- index 617ed13..8f6bb8b 100644
107+ index d152837..b4fe699 100644
108108--- a/parser-specs/config.spec
109109+++ b/parser-specs/config.spec
110- @@ -57 ,7 +57 ,7 @@ state INITIAL:
110+ @@ -61 ,7 +61 ,7 @@ state INITIAL:
111111 colorclass = 'client.background'
112112 -> COLOR_SINGLE
113113 colorclass = 'client.focused_inactive', 'client.focused_tab_title', 'client.focused', 'client.unfocused', 'client.urgent', 'client.placeholder'
@@ -116,7 +116,7 @@ index 617ed13..8f6bb8b 100644
116116
117117 # We ignore comments and 'set' lines (variables).
118118 state IGNORE_LINE:
119- @@ -336 ,6 +336 ,10 @@ state COLOR_SINGLE:
119+ @@ -398 ,6 +398 ,10 @@ state COLOR_SINGLE:
120120 -> call cfg_color_single($colorclass, $color)
121121
122122 # colorclass border background text indicator
@@ -127,7 +127,7 @@ index 617ed13..8f6bb8b 100644
127127 state COLOR_BORDER:
128128 border = word
129129 -> COLOR_BACKGROUND
130- @@ -352 ,13 +356 ,13 @@ state COLOR_INDICATOR:
130+ @@ -414 ,13 +418 ,13 @@ state COLOR_INDICATOR:
131131 indicator = word
132132 -> COLOR_CHILD_BORDER
133133 end
@@ -145,44 +145,35 @@ index 617ed13..8f6bb8b 100644
145145 # <exec|exec_always> [--no-startup-id] command
146146 state EXEC:
147147diff --git a/src/commands.c b/src/commands.c
148- index 27853bd..e56f34f 100644
148+ index 8d22b52..cab3be2 100644
149149--- a/src/commands.c
150150+++ b/src/commands.c
151- @@ -701,23 +701,28 @@ void cmd_resize_set(I3_CMD, long cwidth, const char *mode_width, long cheight, c
151+ @@ -705,7 +705,7 @@ void cmd_resize_set(I3_CMD, long cwidth, const char *mode_width, long cheight, c
152+ ysuccess(success);
152153 }
153154
154155- static int border_width_from_style(border_style_t border_style, long border_width, Con *con) {
155156+ static int border_width_from_style_orig(border_style_t border_style, long border_width, Con *con) {
156157 if (border_style == BS_NONE) {
157158 return 0;
158159 }
159- if (border_width >= 0) {
160- return logical_px(border_width);
161- }
162-
163- const bool is_floating = con_inside_floating(con) != NULL;
164- /* Load the configured defaults. */
165- if (is_floating && border_style == config.default_floating_border) {
166- return config.default_floating_border_width;
167- } else if (!is_floating && border_style == config.default_border) {
168- return config.default_border_width;
169- } else {
170- /* Use some hardcoded values. */
171- return logical_px(border_style == BS_NORMAL ? 2 : 1);
160+ @@ -725,6 +725,11 @@ static int border_width_from_style(border_style_t border_style, long border_widt
172161 }
173162 }
174- +
163+
175164+ static int border_width_from_style(border_style_t border_style, long border_width, Con *con) {
176165+ int original = border_width_from_style_orig(border_style, border_width, con);
177166+ return (original < 3 && border_style != BS_NONE) ? 3 : original;
178167+ }
179-
168+ +
180169 /*
170+ * Implementation of 'border normal|pixel [<n>]', 'border none|1pixel|toggle'.
171+ *
181172diff --git a/src/config.c b/src/config.c
182- index e2dd69b..9d08c61 100644
173+ index 60e0702..7336977 100644
183174--- a/src/config.c
184175+++ b/src/config.c
185- @@ -192 ,15 +192 ,99 @@ bool load_configuration(const char *override_configpath, config_load_t load_type
176+ @@ -195 ,15 +195 ,99 @@ bool load_configuration(const char *override_configpath, config_load_t load_type
186177 x.child_border = draw_util_hex_to_color(cbackground); \
187178 } while (0)
188179
@@ -289,7 +280,7 @@ index e2dd69b..9d08c61 100644
289280
290281 /* the last argument (indicator color) is ignored for bar colors */
291282 INIT_COLOR(config.bar.focused, "#4c7899", "#285577", "#ffffff", "#000000");
292- @@ -281 ,6 +365 ,12 @@ bool load_configuration(const char *override_configpath, config_load_t load_type
283+ @@ -285 ,6 +369 ,12 @@ bool load_configuration(const char *override_configpath, config_load_t load_type
293284 set_font(&config.font);
294285 }
295286
@@ -303,10 +294,10 @@ index e2dd69b..9d08c61 100644
303294 Barconfig *current;
304295 if (load_type != C_VALIDATE) {
305296diff --git a/src/config_directives.c b/src/config_directives.c
306- index a611da2..37c378f 100644
297+ index 38b506f..5177ef5 100644
307298--- a/src/config_directives.c
308299+++ b/src/config_directives.c
309- @@ -462 ,40 +462 ,65 @@ CFGFUN(popup_during_fullscreen, const char *value) {
300+ @@ -592 ,40 +592 ,65 @@ CFGFUN(popup_during_fullscreen, const char *value) {
310301
311302 CFGFUN(color_single, const char *colorclass, const char *color) {
312303 /* used for client.background only currently */
@@ -389,10 +380,10 @@ index a611da2..37c378f 100644
389380 #undef APPLY_COLORS
390381 }
391382diff --git a/src/manage.c b/src/manage.c
392- index 56a6d0b..0c99ad1 100644
383+ index fc4db69..a23d273 100644
393384--- a/src/manage.c
394385+++ b/src/manage.c
395- @@ -113 ,7 +113 ,7 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
386+ @@ -116 ,7 +116 ,7 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
396387 xcb_get_window_attributes_reply_t *attr = NULL;
397388
398389 xcb_get_property_cookie_t wm_type_cookie, strut_cookie, state_cookie,
@@ -401,7 +392,7 @@ index 56a6d0b..0c99ad1 100644
401392 class_cookie, leader_cookie, transient_cookie,
402393 role_cookie, startup_id_cookie, wm_hints_cookie,
403394 wm_normal_hints_cookie, motif_wm_hints_cookie, wm_user_time_cookie, wm_desktop_cookie,
404- @@ -181 ,6 +181 ,8 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
395+ @@ -184 ,6 +184 ,8 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
405396 strut_cookie = GET_PROPERTY(A__NET_WM_STRUT_PARTIAL, UINT32_MAX);
406397 state_cookie = GET_PROPERTY(A__NET_WM_STATE, UINT32_MAX);
407398 utf8_title_cookie = GET_PROPERTY(A__NET_WM_NAME, 128);
@@ -410,7 +401,7 @@ index 56a6d0b..0c99ad1 100644
410401 leader_cookie = GET_PROPERTY(A_WM_CLIENT_LEADER, UINT32_MAX);
411402 transient_cookie = GET_PROPERTY(XCB_ATOM_WM_TRANSIENT_FOR, UINT32_MAX);
412403 title_cookie = GET_PROPERTY(XCB_ATOM_WM_NAME, 128);
413- @@ -208 ,6 +210 ,8 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
404+ @@ -211 ,6 +213 ,8 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
414405 window_update_name_legacy(cwindow, xcb_get_property_reply(conn, title_cookie, NULL));
415406 window_update_name(cwindow, xcb_get_property_reply(conn, utf8_title_cookie, NULL));
416407 window_update_icon(cwindow, xcb_get_property_reply(conn, wm_icon_cookie, NULL));
@@ -420,10 +411,10 @@ index 56a6d0b..0c99ad1 100644
420411 window_update_transient_for(cwindow, xcb_get_property_reply(conn, transient_cookie, NULL));
421412 window_update_strut_partial(cwindow, xcb_get_property_reply(conn, strut_cookie, NULL));
422413diff --git a/src/resize.c b/src/resize.c
423- index 6ad92cc..452c0ac 100644
414+ index 43207fd..1bb1c9d 100644
424415--- a/src/resize.c
425416+++ b/src/resize.c
426- @@ -208 ,7 +208 ,7 @@ void resize_graphical_handler(Con *first, Con *second, orientation_t orientation
417+ @@ -229 ,7 +229 ,7 @@ void resize_graphical_handler(Con *first, Con *second, orientation_t orientation
427418 }
428419
429420 mask = XCB_CW_BACK_PIXEL;
@@ -433,7 +424,7 @@ index 6ad92cc..452c0ac 100644
433424 mask |= XCB_CW_OVERRIDE_REDIRECT;
434425 values[1] = 1;
435426diff --git a/src/restore_layout.c b/src/restore_layout.c
436- index 6f35d16..1a9e50c 100644
427+ index c0cb7f0..ddee74a 100644
437428--- a/src/restore_layout.c
438429+++ b/src/restore_layout.c
439430@@ -128,8 +128,8 @@ void restore_connect(void) {
@@ -457,10 +448,10 @@ index 6f35d16..1a9e50c 100644
457448 });
458449 /* Make i3 not focus this window. */
459450diff --git a/src/tiling_drag.c b/src/tiling_drag.c
460- index cce91f2..9a151a8 100644
451+ index 4311233..bcde034 100644
461452--- a/src/tiling_drag.c
462453+++ b/src/tiling_drag.c
463- @@ -239 ,7 +239 ,7 @@ static xcb_window_t create_drop_indicator(Rect rect) {
454+ @@ -273 ,7 +273 ,7 @@ static xcb_window_t create_drop_indicator(Rect rect) {
464455 uint32_t values[2];
465456
466457 mask = XCB_CW_BACK_PIXEL;
@@ -470,10 +461,10 @@ index cce91f2..9a151a8 100644
470461 mask |= XCB_CW_OVERRIDE_REDIRECT;
471462 values[1] = 1;
472463diff --git a/src/window.c b/src/window.c
473- index 7c65cee..8a85cb2 100644
464+ index 46d0c5d..6b5dfa7 100644
474465--- a/src/window.c
475466+++ b/src/window.c
476- @@ -135 ,6 +135 ,63 @@ void window_update_name_legacy(i3Window *win, xcb_get_property_reply_t *prop) {
467+ @@ -136 ,6 +136 ,63 @@ void window_update_name_legacy(i3Window *win, xcb_get_property_reply_t *prop) {
477468 free(prop);
478469 }
479470
@@ -538,10 +529,10 @@ index 7c65cee..8a85cb2 100644
538529 * Updates the CLIENT_LEADER (logical parent window).
539530 *
540531diff --git a/src/x.c b/src/x.c
541- index 42df996..2066b6e 100644
532+ index 6c70413..a33abde 100644
542533--- a/src/x.c
543534+++ b/src/x.c
544- @@ -487 ,20 +487 ,31 @@ void x_draw_decoration(Con *con) {
535+ @@ -495 ,20 +495 ,31 @@ void x_draw_decoration(Con *con) {
545536 /* 1: build deco_params and compare with cache */
546537 struct deco_render_params *p = scalloc(1, sizeof(struct deco_render_params));
547538
@@ -579,7 +570,7 @@ index 42df996..2066b6e 100644
579570 }
580571
581572 p->border_style = con_border_style(con);
582- @@ -510 ,7 +521 ,7 @@ void x_draw_decoration(Con *con) {
573+ @@ -518 ,7 +529 ,7 @@ void x_draw_decoration(Con *con) {
583574 p->con_rect = (struct width_height){r->width, r->height};
584575 p->con_window_rect = (struct width_height){w->width, w->height};
585576 p->con_deco_rect = con->deco_rect;
@@ -588,7 +579,7 @@ index 42df996..2066b6e 100644
588579 p->con_is_leaf = con_is_leaf(con);
589580 p->parent_layout = con->parent->layout;
590581
591- @@ -545 ,16 +556 ,16 @@ void x_draw_decoration(Con *con) {
582+ @@ -554 ,16 +565 ,16 @@ void x_draw_decoration(Con *con) {
592583 draw_util_clear_surface(&(con->frame_buffer), (color_t){.red = 0.0, .green = 0.0, .blue = 0.0});
593584
594585 /* top area */
@@ -609,7 +600,7 @@ index 42df996..2066b6e 100644
609600 w->x + w->width, 0, r->width - (w->x + w->width), r->height);
610601 }
611602
612- @@ -629 ,8 +640 ,6 @@ void x_draw_decoration(Con *con) {
603+ @@ -640 ,8 +651 ,6 @@ void x_draw_decoration(Con *con) {
613604 /* 6: draw the icon and title */
614605 int text_offset_y = (con->deco_rect.height - config.font.height) / 2;
615606
@@ -618,15 +609,15 @@ index 42df996..2066b6e 100644
618609 const int deco_width = (int)con->deco_rect.width;
619610 const int title_padding = logical_px(2);
620611
621- @@ -672 ,6 +681 ,7 @@ void x_draw_decoration(Con *con) {
612+ @@ -684 ,6 +693 ,7 @@ void x_draw_decoration(Con *con) {
622613 }
623614
624615 i3String *title = NULL;
625616+
626617 if (win == NULL) {
627618 if (con->title_format == NULL) {
628619 char *_title;
629- @@ -691 ,6 +701 ,18 @@ void x_draw_decoration(Con *con) {
620+ @@ -703 ,6 +713 ,18 @@ void x_draw_decoration(Con *con) {
630621 goto copy_pixmaps;
631622 }
632623
@@ -645,7 +636,7 @@ index 42df996..2066b6e 100644
645636 /* icon_padding is applied horizontally only, the icon will always use all
646637 * available vertical space. */
647638 int icon_size = max(0, con->deco_rect.height - logical_px(2));
648- @@ -748 ,9 +770 ,7 @@ void x_draw_decoration(Con *con) {
639+ @@ -763 ,9 +785 ,7 @@ void x_draw_decoration(Con *con) {
649640 icon_size);
650641 }
651642
0 commit comments