diff options
author | Felipe Borges <felipeborges@gnome.org> | 2022-12-21 11:09:48 +0100 |
---|---|---|
committer | Felipe Borges <felipeborges@gnome.org> | 2022-12-21 11:09:48 +0100 |
commit | ce6c64cf6ab08b5b271baa60c07311cab666a1d0 (patch) | |
tree | db26bc0972afe4c973bb1899861ae55fd17aed3e | |
parent | 4ddfecc79d1e5711f976ed706b79fb8f7eaee610 (diff) | |
download | gnome-control-center-mouse-show-back-button-to-return-from-test-page.tar.gz |
mouse: Add a back button for returning from the test pagemouse-show-back-button-to-return-from-test-page
The back button on the top left is a pattern used in Settings and
is more discoverable than the previous implementation that was based
on the toggle state of the Test Button.
Fixes #2250
-rw-r--r-- | panels/mouse/cc-mouse-panel.c | 14 | ||||
-rw-r--r-- | panels/mouse/cc-mouse-panel.ui | 15 |
2 files changed, 21 insertions, 8 deletions
diff --git a/panels/mouse/cc-mouse-panel.c b/panels/mouse/cc-mouse-panel.c index cdd28ab31..69b2f4255 100644 --- a/panels/mouse/cc-mouse-panel.c +++ b/panels/mouse/cc-mouse-panel.c @@ -335,12 +335,14 @@ cc_mouse_panel_get_help_uri (CcPanel *panel) } static void -test_button_toggled_cb (CcMousePanel *self) +show_test_page_cb (CcMousePanel *self) { - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->test_button))) - gtk_stack_set_visible_child (self->stack, GTK_WIDGET (self->mouse_test)); - else - gtk_stack_set_visible_child (self->stack, GTK_WIDGET (self->preferences)); + gboolean show_test_page; + + show_test_page = gtk_stack_get_visible_child (self->stack) == GTK_WIDGET (self->preferences); + gtk_stack_set_visible_child (self->stack, + show_test_page ? GTK_WIDGET (self->mouse_test) : GTK_WIDGET (self->preferences)); + gtk_widget_set_visible (GTK_WIDGET (self->test_button), !show_test_page); } static void @@ -409,6 +411,6 @@ cc_mouse_panel_class_init (CcMousePanelClass *klass) gtk_widget_class_bind_template_child (widget_class, CcMousePanel, two_finger_scrolling_switch); gtk_widget_class_bind_template_callback (widget_class, edge_scrolling_changed_event); - gtk_widget_class_bind_template_callback (widget_class, test_button_toggled_cb); + gtk_widget_class_bind_template_callback (widget_class, show_test_page_cb); gtk_widget_class_bind_template_callback (widget_class, two_finger_scrolling_changed_event); } diff --git a/panels/mouse/cc-mouse-panel.ui b/panels/mouse/cc-mouse-panel.ui index deba0f7c4..3de443a1c 100644 --- a/panels/mouse/cc-mouse-panel.ui +++ b/panels/mouse/cc-mouse-panel.ui @@ -1,13 +1,24 @@ <?xml version="1.0" encoding="UTF-8"?> <interface> <template class="CcMousePanel" parent="CcPanel"> + <child type="titlebar-start"> + <object class="GtkButton" id="back_button"> + <property name="visible">False</property> + <property name="icon-name">go-previous-symbolic</property> + <signal name="clicked" handler="show_test_page_cb" object="CcMousePanel" swapped="yes"/> + <accessibility> + <property name="label" translatable="yes">Back</property> + </accessibility> + </object> + </child> <child type="titlebar-end"> - <object class="GtkToggleButton" id="test_button"> + <object class="GtkButton" id="test_button"> + <property name="visible" bind-source="back_button" bind-property="visible" bind-flags="sync-create|invert-boolean|bidirectional"/> <property name="use_underline">True</property> <property name="valign">center</property> <property name="label" translatable="yes">Test _Settings</property> - <signal name="toggled" handler="test_button_toggled_cb" object="CcMousePanel" swapped="yes"/> + <signal name="clicked" handler="show_test_page_cb" object="CcMousePanel" swapped="yes"/> <style> <class name="text-button"/> </style> |