[gtk/matthiasc/for-master] aboutdialog: Fix initial focus



commit 5aa03bcb0d6f590deeda5a1df283adba6ac028dc
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Jan 17 11:39:36 2021 -0500

    aboutdialog: Fix initial focus
    
    When GtkAboutDialog was changed to derive from
    GtkWindow, it lost the initial focus handling that
    GtkDialog has. Reinstate some of it.
    
    Fixes: #3437

 gtk/gtkaboutdialog.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)
---
diff --git a/gtk/gtkaboutdialog.c b/gtk/gtkaboutdialog.c
index 4cdee36575..6e806856b2 100644
--- a/gtk/gtkaboutdialog.c
+++ b/gtk/gtkaboutdialog.c
@@ -315,6 +315,17 @@ stack_visible_child_notify (GtkStack       *stack,
   return FALSE;
 }
 
+static void
+gtk_about_dialog_map (GtkWidget *widget)
+{
+  GtkAboutDialog *about = GTK_ABOUT_DIALOG (widget);
+
+  if (gtk_widget_get_visible (about->stack_switcher))
+    gtk_widget_grab_focus (gtk_widget_get_first_child (about->stack_switcher));
+
+  GTK_WIDGET_CLASS (gtk_about_dialog_parent_class)->map (widget);
+}
+
 static void
 gtk_about_dialog_class_init (GtkAboutDialogClass *klass)
 {
@@ -329,6 +340,8 @@ gtk_about_dialog_class_init (GtkAboutDialogClass *klass)
 
   object_class->finalize = gtk_about_dialog_finalize;
 
+  widget_class->map = gtk_about_dialog_map;
+
   klass->activate_link = gtk_about_dialog_activate_link;
 
   /**


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]