commit 46280460a58e6517b81e55eb0b027ad12aaed834
parent 9db859585e79d468ff79f41db6bc0950fb285a5a
Author: Tony Crisci <tony@dubstepdish.com>
Date: Sun, 8 Apr 2018 11:34:38 -0400
push all parents of focused container in focus stack
Diffstat:
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/sway/input/seat.c b/sway/input/seat.c
@@ -413,10 +413,23 @@ void seat_set_focus_warp(struct sway_seat *seat,
if (container) {
struct sway_seat_container *seat_con =
seat_container_from_container(seat, container);
- if (!seat_con) {
+ if (seat_con == NULL) {
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_insert(&seat->focus_stack, &seat_con->link);