diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-06-23 17:47:28 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-06-23 17:47:28 +1000 |
commit | 32b865e610dd937af17ce36b8c986e41f55a4627 (patch) | |
tree | bb89819988dcebe0d621c645fac35c9bfe4198d4 /include/sway/input | |
parent | b11c9199a61775d7ed441c68238e11e93fbd6d21 (diff) |
Fix crash when deleting last child in a tabbed or stacked container
There was no `current` child because the container was destroyed. This
makes it fall back to looking in the parent's current children list.
Diffstat (limited to 'include/sway/input')
-rw-r--r-- | include/sway/input/seat.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h index 1f7792ba..0e440701 100644 --- a/include/sway/input/seat.h +++ b/include/sway/input/seat.h @@ -119,6 +119,17 @@ struct sway_container *seat_get_active_child(struct sway_seat *seat, struct sway_container *container); /** + * Return the immediate child of container which was most recently focused, with + * fallback to selecting the child in the parent's `current` (rendered) children + * list. + * + * This is useful for when a tabbed container and its children are destroyed but + * still being rendered, and we have to render an appropriate child. + */ +struct sway_container *seat_get_active_current_child(struct sway_seat *seat, + struct sway_container *container); + +/** * Iterate over the focus-inactive children of the container calling the * function on each. */ |