Implement decent keyboard nav for AccountsEditor and editor panes

Return to previous panes using escape/back/(left|right), navigate
between settings list items using up/down.

Implementation courtesy
https://blogs.gnome.org/mclasen/2014/02/27/getting-the-details-right/
This commit is contained in:
Michael Gratton 2018-09-06 20:05:42 +10:00 committed by Michael James Gratton
parent 3265f4626c
commit bb629999a6
11 changed files with 442 additions and 227 deletions

View file

@ -1,7 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.0 -->
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkAdjustment" id="pane_adjustment">
<property name="upper">100</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<template class="AccountsEditorAddPane" parent="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
@ -15,6 +20,8 @@
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="vadjustment">pane_adjustment</property>
<property name="hscrollbar_policy">never</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkViewport">
@ -22,7 +29,7 @@
<property name="can_focus">False</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkGrid">
<object class="GtkGrid" id="pane_content">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@ -36,6 +43,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="selection_mode">none</property>
<signal name="keynav-failed" handler="on_list_keynav_failed" swapped="no"/>
</object>
</child>
</object>
@ -77,6 +85,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="selection_mode">none</property>
<signal name="keynav-failed" handler="on_list_keynav_failed" swapped="no"/>
</object>
</child>
</object>
@ -124,6 +133,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="selection_mode">none</property>
<signal name="keynav-failed" handler="on_list_keynav_failed" swapped="no"/>
</object>
</child>
</object>
@ -139,7 +149,7 @@
</packing>
</child>
<style>
<class name="geary-account-view"/>
<class name="geary-accounts-editor-pane-content"/>
</style>
</object>
</child>
@ -156,6 +166,9 @@
<property name="top_attach">0</property>
</packing>
</child>
<style>
<class name="geary-accounts-editor-pane"/>
</style>
</template>
<object class="GtkHeaderBar" id="header">
<property name="visible">True</property>