From d3973b8fadea1247d758dea89fc7ac111a24bcbc Mon Sep 17 00:00:00 2001 From: Daniel Fox Date: Tue, 31 Dec 2024 14:18:04 -0800 Subject: [PATCH] Set the paste button in the GTK dialog as default --- src/apprt/gtk/ClipboardConfirmationWindow.zig | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/apprt/gtk/ClipboardConfirmationWindow.zig b/src/apprt/gtk/ClipboardConfirmationWindow.zig index a04271497..cfa29f378 100644 --- a/src/apprt/gtk/ClipboardConfirmationWindow.zig +++ b/src/apprt/gtk/ClipboardConfirmationWindow.zig @@ -89,6 +89,8 @@ fn init( const view = try PrimaryView.init(self, data); self.view = view; c.gtk_window_set_child(@ptrCast(window), view.root); + _ = c.gtk_widget_grab_focus(view.buttons.confirm_button); + c.gtk_widget_show(window); // Block the main window from input. @@ -104,6 +106,7 @@ fn gtkDestroy(_: *c.GtkWidget, ud: ?*anyopaque) callconv(.C) void { const PrimaryView = struct { root: *c.GtkWidget, text: *c.GtkTextView, + buttons: ButtonsView, pub fn init(root: *ClipboardConfirmation, data: []const u8) !PrimaryView { // All our widgets @@ -135,7 +138,7 @@ const PrimaryView = struct { c.gtk_text_view_set_right_margin(@ptrCast(text), 8); c.gtk_text_view_set_monospace(@ptrCast(text), 1); - return .{ .root = view.root, .text = @ptrCast(text) }; + return .{ .root = view.root, .text = @ptrCast(text), .buttons = buttons }; } /// Returns the GtkTextBuffer for the data that was unsafe. @@ -158,6 +161,7 @@ const PrimaryView = struct { const ButtonsView = struct { root: *c.GtkWidget, + confirm_button: *c.GtkWidget, pub fn init(root: *ClipboardConfirmation) !ButtonsView { const cancel_text, const confirm_text = switch (root.pending_req) { @@ -172,7 +176,7 @@ const ButtonsView = struct { errdefer c.g_object_unref(confirm_button); // TODO: Focus on the paste button - // c.gtk_widget_grab_focus(confirm_button); + _ = c.gtk_widget_grab_focus(confirm_button); // Create our view const view = try View.init(&.{ @@ -198,7 +202,7 @@ const ButtonsView = struct { c.G_CONNECT_DEFAULT, ); - return .{ .root = view.root }; + return .{ .root = view.root, .confirm_button = confirm_button }; } fn gtkCancelClick(_: *c.GtkWidget, ud: ?*anyopaque) callconv(.C) void {