diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2019-02-08 22:29:35 -0500 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2019-02-09 09:24:43 +0100 |
commit | 995b6edab6fab33668a9bd320631b6ab65dc10c6 (patch) | |
tree | a7b42df4d2130842803718811f31f468fe1090c1 | |
parent | bar_cmd_modifier: add support for none (diff) | |
download | sway-995b6edab6fab33668a9bd320631b6ab65dc10c6.tar.gz sway-995b6edab6fab33668a9bd320631b6ab65dc10c6.tar.zst sway-995b6edab6fab33668a9bd320631b6ab65dc10c6.zip |
container_at_stacked: skip titles when zero pixels
It is possible to make the title bars have a zero pixel height while
stacked, by using a blank font and no padding. This causes a division by
zero when attempting to calculate the child index in
container_at_stacked, which then results in a segfault when attempting
to access the child at that bad index (INT_MIN). This just skips the
check to see if the cursor is over a title bar of a child of a stacked
container when the title bar height is zero since there will be no title
bars.
-rw-r--r-- | sway/tree/container.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c index 0ebdc51d..9358dad7 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c | |||
@@ -251,10 +251,12 @@ static struct sway_container *container_at_stacked(struct sway_node *parent, | |||
251 | 251 | ||
252 | // Title bars | 252 | // Title bars |
253 | int title_height = container_titlebar_height(); | 253 | int title_height = container_titlebar_height(); |
254 | int child_index = (ly - box.y) / title_height; | 254 | if (title_height > 0) { |
255 | if (child_index < children->length) { | 255 | int child_index = (ly - box.y) / title_height; |
256 | struct sway_container *child = children->items[child_index]; | 256 | if (child_index < children->length) { |
257 | return child; | 257 | struct sway_container *child = children->items[child_index]; |
258 | return child; | ||
259 | } | ||
258 | } | 260 | } |
259 | 261 | ||
260 | // Surfaces | 262 | // Surfaces |