diff options
author | emersion <contact@emersion.fr> | 2018-06-03 18:46:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-03 18:46:48 +0100 |
commit | 6d0ad6a1ed1d86863efe6eeb0d2aea4e1055d22f (patch) | |
tree | 04d00dae6ffd5b4937ca4974e58be8563f466f6d /sway/input/seat.c | |
parent | 4bc88772ec15ce0070fb06fe3c242cb65dc34b01 (diff) | |
parent | 57e78414fa24763d09a55e47fed221794ffc7524 (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.c | 14 |
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) { |