aboutsummaryrefslogtreecommitdiff
path: root/include/sway/input
diff options
context:
space:
mode:
authorRyan Dwyer <ryandwyer1@gmail.com>2018-06-23 17:47:28 +1000
committerRyan Dwyer <ryandwyer1@gmail.com>2018-06-23 17:47:28 +1000
commit32b865e610dd937af17ce36b8c986e41f55a4627 (patch)
treebb89819988dcebe0d621c645fac35c9bfe4198d4 /include/sway/input
parentb11c9199a61775d7ed441c68238e11e93fbd6d21 (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.h11
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.
*/