From 6333e465d2e1fddfc5bd995b4e17413c740f24b5 Mon Sep 17 00:00:00 2001 From: Leon Henrik Plickat Date: Fri, 7 May 2021 07:23:55 +0200 Subject: [PATCH] Allow changing output focus with pointer --- river/Seat.zig | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/river/Seat.zig b/river/Seat.zig index 10ae97b..d47d64c 100644 --- a/river/Seat.zig +++ b/river/Seat.zig @@ -122,10 +122,14 @@ pub fn focus(self: *Self, _target: ?*View) void { // While a layer surface is focused, views may not recieve focus if (self.focused == .layer) return; - // If the view is not currently visible, behave as if null was passed if (target) |view| { - if (view.output != self.focused_output or - view.pending.tags & self.focused_output.pending.tags == 0) target = null; + // If the view is not currently visible, behave as if null was passed + if (view.pending.tags & view.output.pending.tags == 0) { + target = null; + } else { + // If the view is not on the currently focused output, focus it + if (view.output != self.focused_output) self.focusOutput(view.output); + } } // If the target view is not fullscreen or null, then a fullscreen view