[nautilus] toolbar: make operations popover keyboard navigable



commit 511c32c58563bee4cad1dd658f428ed2d9a942b4
Author: Carlos Soriano <csoriano gnome org>
Date:   Tue Feb 23 15:44:56 2016 +0100

    toolbar: make operations popover keyboard navigable
    
    Move focus in and out from it when opening and make the info widget
    to be able to focus.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=762136

 src/nautilus-toolbar.c                            |   10 ++++++++++
 src/resources/ui/nautilus-progress-info-widget.ui |    2 ++
 2 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c
index 189e4f5..b968aed 100644
--- a/src/nautilus-toolbar.c
+++ b/src/nautilus-toolbar.c
@@ -607,6 +607,11 @@ update_operations (NautilusToolbar *self)
                                                       TRUE);
                 }
         }
+
+        /* Since we removed the info widgets, we need to restore the focus */
+        if (gtk_widget_get_visible (self->priv->operations_popover)) {
+                gtk_widget_grab_focus (self->priv->operations_popover);
+        }
 }
 
 static gboolean
@@ -790,6 +795,10 @@ nautilus_toolbar_init (NautilusToolbar *self)
                          G_CALLBACK (navigation_button_press_cb), self);
        g_signal_connect (self->priv->forward_button, "button-release-event",
                          G_CALLBACK (navigation_button_release_cb), self);
+        g_signal_connect (self->priv->operations_popover, "show",
+                          (GCallback) gtk_widget_grab_focus, NULL);
+        g_signal_connect_swapped (self->priv->operations_popover, "closed",
+                                  (GCallback) gtk_widget_grab_focus, self);
 
        gtk_widget_show_all (GTK_WIDGET (self));
        toolbar_update_appearance (self);
@@ -886,6 +895,7 @@ nautilus_toolbar_class_init (NautilusToolbarClass *klass)
 
        gtk_widget_class_bind_template_child_private (widget_class, NautilusToolbar, operations_button);
        gtk_widget_class_bind_template_child_private (widget_class, NautilusToolbar, operations_icon);
+       gtk_widget_class_bind_template_child_private (widget_class, NautilusToolbar, operations_popover);
        gtk_widget_class_bind_template_child_private (widget_class, NautilusToolbar, operations_container);
        gtk_widget_class_bind_template_child_private (widget_class, NautilusToolbar, operations_revealer);
        gtk_widget_class_bind_template_child_private (widget_class, NautilusToolbar, view_button);
diff --git a/src/resources/ui/nautilus-progress-info-widget.ui 
b/src/resources/ui/nautilus-progress-info-widget.ui
index 2cc80c1..cd72117 100644
--- a/src/resources/ui/nautilus-progress-info-widget.ui
+++ b/src/resources/ui/nautilus-progress-info-widget.ui
@@ -39,6 +39,8 @@
         <property name="margin_start">20</property>
         <property name="valign">center</property>
         <property name="image">cancel_image</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
         <style>
           <class name="nautilus-circular-button"/>
         </style>


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