[nautilus/wip/csoriano/zoomsv3: 9/11] toolbar: make operations popover keyboard navigable
- From: Carlos Soriano Sánchez <csoriano src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/wip/csoriano/zoomsv3: 9/11] toolbar: make operations popover keyboard navigable
- Date: Tue, 23 Feb 2016 15:47:38 +0000 (UTC)
commit a7b8ff749c8a611fa65a7a19d7807a5a509ce8c6
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 | 11 +++++++++++
src/resources/ui/nautilus-progress-info-widget.ui | 2 ++
2 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c
index 0cfca11..b968aed 100644
--- a/src/nautilus-toolbar.c
+++ b/src/nautilus-toolbar.c
@@ -70,6 +70,7 @@ struct _NautilusToolbarPrivate {
GtkWidget *view_button;
GtkWidget *action_button;
+ GtkWidget *operations_popover;
GtkWidget *operations_container;
GtkWidget *operations_revealer;
GtkWidget *operations_icon;
@@ -606,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
@@ -789,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);
@@ -885,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]