file chooser: Improve keynav
authorMatthias Clasen <mclasen@redhat.com>
Sat, 27 Jun 2015 16:23:48 +0000 (12:23 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 4 Jul 2015 04:29:24 +0000 (00:29 -0400)
Some internal containers were erroneously taking focus, interrupting
the flow of tab keynav, and using arrow keynav to go from the file
list to the sidebar did not work anymore, after the recent sidebar
rewrite.

gtk/gtkfilechooserwidget.c
gtk/ui/gtkfilechooserwidget.ui

index 089fb9d92abc810f01c15bdb2115877ae49e1d15..5a5acde17b9e82a0409ebf2c852ef8e70084b2d2 100644 (file)
@@ -1227,8 +1227,8 @@ browse_files_key_press_event_cb (GtkWidget   *widget,
 
   if (key_is_left_or_right (event))
     {
-      gtk_widget_grab_focus (priv->places_sidebar);
-      return TRUE;
+      if (gtk_widget_child_focus (priv->places_sidebar, GTK_DIR_LEFT))
+        return TRUE;
     }
 
   if ((event->keyval == GDK_KEY_Return
index 5d97e71f02c4f40364e8595a4da9a13aa6febe5b..8f14a85d01d0295e19da3eccfc5f357940927b88 100644 (file)
         <child>
           <object class="GtkPaned" id="browse_widgets_hpaned">
             <property name="visible">True</property>
-            <property name="can_focus">True</property>
             <child>
               <object class="GtkPlacesSidebar" id="places_sidebar">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
+                <property name="can_focus">False</property>
                 <property name="hscrollbar_policy">never</property>
                 <property name="local_only">True</property>
                 <property name="show_enter_location">True</property>
@@ -50,7 +49,6 @@
                         <child>
                           <object class="GtkStack" id="browse_header_stack">
                             <property name="visible">True</property>
-                            <property name="can_focus">True</property>
                             <property name="transition-type">crossfade</property>
                             <child>
                               <object class="GtkBox">
@@ -60,7 +58,6 @@
                                 <child>
                                   <object class="GtkPathBar" id="browse_path_bar">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
                                     <signal name="path-clicked" handler="path_bar_clicked" after="yes" swapped="no"/>
                                   </object>
                                   <packing>
@@ -70,7 +67,6 @@
                                 <child>
                                   <object class="GtkMenuButton" id="browse_new_folder_button">
                                     <property name="tooltip-text" translatable="yes">Create Folder</property>
-                                    <property name="can_focus">True</property>
                                     <property name="use_underline">True</property>
                                     <property name="popover">new_folder_popover</property>
                                     <signal name="notify::active" handler="new_folder_popover_active"/>
                         <child>
                           <object class="GtkScrolledWindow" id="browse_files_swin">
                             <property name="visible">True</property>
-                            <property name="can_focus">True</property>
                             <property name="hscrollbar_policy">never</property>
                             <child>
                               <object class="GtkTreeView" id="browse_files_tree_view">
                                 <property name="visible">True</property>
-                                <property name="can_focus">True</property>
                                 <property name="has_tooltip">True</property>
                                 <property name="enable-search">False</property>
                                 <child internal-child="accessible">