From 406d494e1d80a229cf6025c8ed6fc9ed208260eb Mon Sep 17 00:00:00 2001 From: Cameron Dart <8763518+SkamDart@users.noreply.github.com> Date: Thu, 13 Jun 2024 00:59:38 +0000 Subject: [PATCH] feat(gtk): focus follows mouse --- src/apprt/gtk/Surface.zig | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/apprt/gtk/Surface.zig b/src/apprt/gtk/Surface.zig index d696d8b38..57bbf0d38 100644 --- a/src/apprt/gtk/Surface.zig +++ b/src/apprt/gtk/Surface.zig @@ -1204,6 +1204,12 @@ fn gtkMouseMotion( .y = @floatCast(scaled.y), }; + // If we don't have focus, and we want it, grab it. + const gl_widget = @as(*c.GtkWidget, @ptrCast(self.gl_area)); + if (c.gtk_widget_has_focus(gl_widget) == 0 and self.app.config.@"focus-follows-mouse") { + self.grabFocus(); + } + self.core_surface.cursorPosCallback(self.cursor_pos) catch |err| { log.err("error in cursor pos callback err={}", .{err}); return;