From c0f9ee7bd1fc70672dcf64a19c9fbbf5a80b12b0 Mon Sep 17 00:00:00 2001
From: Tony Crisci <tony@dubstepdish.com>
Date: Sat, 7 Apr 2018 16:06:36 -0400
Subject: seat get focus inactive view

---
 include/sway/input/seat.h | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

(limited to 'include/sway')

diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h
index c7be58b5..05fff6f7 100644
--- a/include/sway/input/seat.h
+++ b/include/sway/input/seat.h
@@ -87,8 +87,12 @@ struct sway_container *seat_get_focus(struct sway_seat *seat);
 struct sway_container *seat_get_focus_inactive(struct sway_seat *seat,
 		struct sway_container *container);
 
-struct sway_container *seat_get_focus_by_type(struct sway_seat *seat,
-		struct sway_container *container, enum sway_container_type type);
+/**
+ * Descend into the focus stack to find the focus-inactive view. Useful for
+ * container placement when they change position in the tree.
+ */
+struct sway_container *seat_get_focus_inactive_view(struct sway_seat *seat,
+		struct sway_container *container);
 
 void seat_apply_config(struct sway_seat *seat, struct seat_config *seat_config);
 
-- 
cgit v1.2.3


From de811823b60cc33fb6a65c6f1045e9d1fb497243 Mon Sep 17 00:00:00 2001
From: Tony Crisci <tony@dubstepdish.com>
Date: Sat, 7 Apr 2018 16:14:12 -0400
Subject: seat focus inactive children foreach

---
 include/sway/input/seat.h |  7 +++++++
 sway/input/seat.c         | 14 ++++++++++++++
 2 files changed, 21 insertions(+)

(limited to 'include/sway')

diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h
index 05fff6f7..308f5c6d 100644
--- a/include/sway/input/seat.h
+++ b/include/sway/input/seat.h
@@ -94,6 +94,13 @@ struct sway_container *seat_get_focus_inactive(struct sway_seat *seat,
 struct sway_container *seat_get_focus_inactive_view(struct sway_seat *seat,
 		struct sway_container *container);
 
+/**
+ * Iterate over the focus-inactive children of the container calling the function on each.
+ */
+void seat_focus_inactive_children_for_each(struct sway_seat *seat,
+		struct sway_container *container,
+		void (*f)(struct sway_container *container, void *data), void *data);
+
 void seat_apply_config(struct sway_seat *seat, struct seat_config *seat_config);
 
 struct seat_config *seat_get_config(struct sway_seat *seat);
diff --git a/sway/input/seat.c b/sway/input/seat.c
index 1a646715..3656d6b6 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -106,6 +106,20 @@ static struct sway_container *seat_get_focus_by_type(struct sway_seat *seat,
 	return NULL;
 }
 
+void seat_focus_inactive_children_for_each(struct sway_seat *seat,
+		struct sway_container *container,
+		void (*f)(struct sway_container *container, void *data), void *data) {
+	struct sway_seat_container *current = NULL;
+	wl_list_for_each(current, &seat->focus_stack, link) {
+		if (current->container->parent == NULL) {
+			continue;
+		}
+		if (current->container->parent == container) {
+			f(current->container, data);
+		}
+	}
+}
+
 struct sway_container *seat_get_focus_inactive_view(struct sway_seat *seat,
 		struct sway_container *container) {
 	return seat_get_focus_by_type(seat, container, C_VIEW);
-- 
cgit v1.2.3


From e7771c507a6f482cc66c482d167af2d2beaff31b Mon Sep 17 00:00:00 2001
From: Tony Crisci <tony@dubstepdish.com>
Date: Sun, 8 Apr 2018 15:32:19 -0400
Subject: 80char

---
 include/sway/input/seat.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

(limited to 'include/sway')

diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h
index 308f5c6d..ff76841e 100644
--- a/include/sway/input/seat.h
+++ b/include/sway/input/seat.h
@@ -95,7 +95,8 @@ struct sway_container *seat_get_focus_inactive_view(struct sway_seat *seat,
 		struct sway_container *container);
 
 /**
- * Iterate over the focus-inactive children of the container calling the function on each.
+ * Iterate over the focus-inactive children of the container calling the
+ * function on each.
  */
 void seat_focus_inactive_children_for_each(struct sway_seat *seat,
 		struct sway_container *container,
-- 
cgit v1.2.3