git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commitba42ee83b880d94d95cd5a3b4f5bef62d43ae937
parent7adec8f14f
authorIsaac Freund <[email protected]>
date2020-04-15 20:02
Fix focus handling on output cycle

 src/seat.zig | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/seat.zig b/src/seat.zig
index d694970..dc25802 100644
--- a/src/seat.zig
+++ b/src/seat.zig
@@ -65,11 +65,16 @@ pub const Seat = struct {
                 v.current_tags & self.focused_output.current_focused_tags == 0
         else
             true) {
-            // Set view to the first currently visible view in the focus stack if any
-            view = if (ViewStack(*View).iterator(
+            // Set view to the first currently visible view on in the focus stack if any
+            var it = ViewStack(*View).iterator(
                 self.focus_stack.first,
                 self.focused_output.current_focused_tags,
-            ).next()) |node| node.view else null;
+            );
+            view = while (it.next()) |node| {
+                if (node.view.output == self.focused_output) {
+                    break node.view;
+                }
+            } else null;
         }
 
         if (self.focused_view) |current_focus| {