[gtk: 1/2] window: Fallback to CSD titlebar in focus-chain



commit e1a7629a85151cc616247f0ae8c80b3c512568d8
Author: Andrea Azzarone <azzaronea gmail com>
Date:   Thu Jul 26 10:16:32 2018 +0200

    window: Fallback to CSD titlebar in focus-chain
    
    CSD titlebar are included in the focus-chain. The logic used makes sure that the
    initial focus avoids the titlebar, but tabbing around will eventually get there.
    This logic fails in case the window has no other focusable widgets apart from
    the ones in the header-bar. If this happens keynav focus will be lost. To handle
    the above scenario, we need to fallback to focus the header-bar (if any).
    
    Fixes: https://gitlab.gnome.org/GNOME/gnome-software/issues/404

 gtk/gtkwindow.c | 5 +++++
 1 file changed, 5 insertions(+)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index be734c1d14..2c5e9feaf2 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -7689,6 +7689,11 @@ gtk_window_focus (GtkWidget        *widget,
     {
       if (gtk_widget_child_focus (child, direction))
         return TRUE;
+      else if (priv->title_box != NULL &&
+               priv->title_box != child &&
+               gtk_widget_child_focus (priv->title_box, direction))
+        return TRUE;
+
     }
 
   return FALSE;


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