From 3eea990e3fabbfc438fa893713c0c00deb5bfb92 Mon Sep 17 00:00:00 2001 From: Harrison DiAmbrosio Date: Tue, 25 Nov 2025 16:23:11 -0500 Subject: [PATCH] view focus issue --- src/root.zig | 20 -------------------- src/view.zig | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/root.zig b/src/root.zig index 11d4305..474cf11 100644 --- a/src/root.zig +++ b/src/root.zig @@ -107,23 +107,3 @@ pub fn viewAt(self: *Root, lx: f64, ly: f64) ?ViewAtResult { } return null; } - -pub fn focusView(_: *Root, view: *View) void { - if (server.seat.wlr_seat.keyboard_state.focused_surface) |previous_surface| { - if (previous_surface == view.xdg_toplevel.base.surface) return; - if (wlr.XdgSurface.tryFromWlrSurface(previous_surface)) |xdg_surface| { - _ = xdg_surface.role_data.toplevel.?.setActivated(false); - } - } - - view.scene_tree.node.raiseToTop(); - - _ = view.xdg_toplevel.setActivated(true); - - const wlr_keyboard = server.seat.wlr_seat.getKeyboard() orelse return; - server.seat.wlr_seat.keyboardNotifyEnter( - view.xdg_toplevel.base.surface, - wlr_keyboard.keycodes[0..wlr_keyboard.num_keycodes], - &wlr_keyboard.modifiers, - ); -} diff --git a/src/view.zig b/src/view.zig index 4bba96c..b1acd67 100644 --- a/src/view.zig +++ b/src/view.zig @@ -88,6 +88,24 @@ pub fn deinit(self: *View) void { } pub fn setFocused(self: *View) void { + if (server.seat.wlr_seat.keyboard_state.focused_surface) |previous_surface| { + if (previous_surface == self.xdg_toplevel.base.surface) return; + if (wlr.XdgSurface.tryFromWlrSurface(previous_surface)) |xdg_surface| { + _ = xdg_surface.role_data.toplevel.?.setActivated(false); + } + } + + self.raiseToTop(); + + _ = self.xdg_toplevel.setActivated(true); + + const wlr_keyboard = server.seat.wlr_seat.getKeyboard() orelse return; + server.seat.wlr_seat.keyboardNotifyEnter( + self.xdg_toplevel.base.surface, + wlr_keyboard.keycodes[0..wlr_keyboard.num_keycodes], + &wlr_keyboard.modifiers, + ); + if(server.seat.focused_view) |prev_view| { prev_view.focused = false; }