push all parents of focused container in focus stack
This commit is contained in:
parent
9db859585e
commit
46280460a5
|
@ -413,10 +413,23 @@ void seat_set_focus_warp(struct sway_seat *seat,
|
||||||
if (container) {
|
if (container) {
|
||||||
struct sway_seat_container *seat_con =
|
struct sway_seat_container *seat_con =
|
||||||
seat_container_from_container(seat, container);
|
seat_container_from_container(seat, container);
|
||||||
if (!seat_con) {
|
if (seat_con == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// put all the anscestors of this container on top of the focus stack
|
||||||
|
struct sway_seat_container *parent =
|
||||||
|
seat_container_from_container(seat,
|
||||||
|
seat_con->container->parent);
|
||||||
|
while (parent) {
|
||||||
|
wl_list_remove(&parent->link);
|
||||||
|
wl_list_insert(&seat->focus_stack, &parent->link);
|
||||||
|
|
||||||
|
parent =
|
||||||
|
seat_container_from_container(seat,
|
||||||
|
parent->container->parent);
|
||||||
|
}
|
||||||
|
|
||||||
wl_list_remove(&seat_con->link);
|
wl_list_remove(&seat_con->link);
|
||||||
wl_list_insert(&seat->focus_stack, &seat_con->link);
|
wl_list_insert(&seat->focus_stack, &seat_con->link);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue