aboutsummaryrefslogtreecommitdiff
path: root/sway/input/seat.c
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-06-03 18:46:48 +0100
committerGitHub <noreply@github.com>2018-06-03 18:46:48 +0100
commit6d0ad6a1ed1d86863efe6eeb0d2aea4e1055d22f (patch)
tree04d00dae6ffd5b4937ca4974e58be8563f466f6d /sway/input/seat.c
parent4bc88772ec15ce0070fb06fe3c242cb65dc34b01 (diff)
parent57e78414fa24763d09a55e47fed221794ffc7524 (diff)
Merge pull request #2099 from RyanDwyer/fix-seat-get-active-child
Fix seat_get_active_child
Diffstat (limited to 'sway/input/seat.c')
-rw-r--r--sway/input/seat.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c
index d35cbeef..0e539b70 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -728,14 +728,14 @@ struct sway_container *seat_get_focus_inactive(struct sway_seat *seat,
struct sway_container *seat_get_active_child(struct sway_seat *seat,
struct sway_container *container) {
- struct sway_container *focus = seat_get_focus_inactive(seat, container);
- if (!focus) {
- return NULL;
- }
- while (focus->parent != container) {
- focus = focus->parent;
+ struct sway_seat_container *current = NULL;
+ wl_list_for_each(current, &seat->focus_stack, link) {
+ if (current->container->parent == container &&
+ current->container->layout != L_FLOATING) {
+ return current->container;
+ }
}
- return focus;
+ return NULL;
}
struct sway_container *seat_get_focus(struct sway_seat *seat) {