mirror of
https://github.com/swaywm/sway.git
synced 2024-11-16 13:13:17 +00:00
Don't return pending children in seat_get_active_current_child
Fixes #2192. seat_get_active_current_child is intended to return a child of the given container which has finished its mapping transaction and is able to be rendered on screen. The previous implementation was capable of returning a pending child, which caused a child of a tabbed or stacked view to be rendered prematurely while it was mapping.
This commit is contained in:
parent
f611a4f9b1
commit
1e4807efa0
|
@ -832,12 +832,12 @@ struct sway_container *seat_get_active_child(struct sway_seat *seat,
|
|||
|
||||
struct sway_container *seat_get_active_current_child(struct sway_seat *seat,
|
||||
struct sway_container *container) {
|
||||
struct sway_container *child = seat_get_active_child(seat, container);
|
||||
if (child) {
|
||||
return child;
|
||||
struct sway_seat_container *current = NULL;
|
||||
wl_list_for_each(current, &seat->focus_stack, link) {
|
||||
if (current->container->current.parent == container &&
|
||||
current->container->current.layout != L_FLOATING) {
|
||||
return current->container;
|
||||
}
|
||||
if (container->current.children->length == 1) {
|
||||
return container->current.children->items[0];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue