summaryrefslogtreecommitdiff
path: root/src/nautilus-toolbar.c
diff options
context:
space:
mode:
authorCarlos Soriano <csoriano@gnome.org>2016-02-23 15:44:56 +0100
committerCarlos Soriano <csoriano@gnome.org>2016-02-24 11:21:04 +0100
commit511c32c58563bee4cad1dd658f428ed2d9a942b4 (patch)
tree32a265556bab2fefacb21c48cf7fd4ce26c915b9 /src/nautilus-toolbar.c
parentf7bf1c4275f51d08b9f444cf4bc13de8c20e4ba0 (diff)
downloadnautilus-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.c10
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);