From: Michael Stapelberg Date: Mon, 6 Aug 2012 01:11:11 +0000 (+0200) Subject: Bugfix for previous commit: Don’t crash with dock windows X-Git-Tag: 4.3~125 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=506b7f40048185bd3e7a87b9ec27e58c6724046c;p=i3%2Fi3 Bugfix for previous commit: Don’t crash with dock windows --- diff --git a/src/con.c b/src/con.c index 6f2a85b2..eb733355 100644 --- a/src/con.c +++ b/src/con.c @@ -936,8 +936,12 @@ Con *con_descend_direction(Con *con, direction_t direction) { Rect con_border_style_rect(Con *con) { adjacent_t borders_to_hide = ADJ_NONE; Rect result; + /* Shortcut to avoid calling con_adjacent_borders() on dock containers. */ + int border_style = con_border_style(con); + if (border_style == BS_NONE) + return (Rect){ 0, 0, 0, 0 }; borders_to_hide = con_adjacent_borders(con) & config.hide_edge_borders; - switch (con_border_style(con)) { + switch (border_style) { case BS_NORMAL: result = (Rect){2, 0, -(2 * 2), -2}; if (borders_to_hide & ADJ_LEFT_SCREEN_EDGE) { diff --git a/src/x.c b/src/x.c index cd85bcc6..9aea9fb8 100644 --- a/src/x.c +++ b/src/x.c @@ -305,13 +305,14 @@ void x_draw_decoration(Con *con) { * • non-leaf containers which are in a stacked/tabbed container * * It does not need to run for: - * • direct children of outputs + * • direct children of outputs or dockareas * • floating containers (they don’t have a decoration) */ if ((!leaf && parent->layout != L_STACKED && parent->layout != L_TABBED) || parent->type == CT_OUTPUT || + parent->type == CT_DOCKAREA || con->type == CT_FLOATING_CON) return;