diff options
author | Carlos Soriano <csoriano@gnome.org> | 2016-02-23 15:44:56 +0100 |
---|---|---|
committer | Carlos Soriano <csoriano@gnome.org> | 2016-02-24 11:21:04 +0100 |
commit | 511c32c58563bee4cad1dd658f428ed2d9a942b4 (patch) | |
tree | 32a265556bab2fefacb21c48cf7fd4ce26c915b9 /src/nautilus-toolbar.c | |
parent | f7bf1c4275f51d08b9f444cf4bc13de8c20e4ba0 (diff) | |
download | nautilus-511c32c58563bee4cad1dd658f428ed2d9a942b4.tar.gz |
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
Diffstat (limited to 'src/nautilus-toolbar.c')
-rw-r--r-- | src/nautilus-toolbar.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c index 189e4f5e2..b968aed7a 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); |