summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Borges <felipeborges@gnome.org>2022-12-21 11:09:48 +0100
committerFelipe Borges <felipeborges@gnome.org>2022-12-21 11:09:48 +0100
commitce6c64cf6ab08b5b271baa60c07311cab666a1d0 (patch)
treedb26bc0972afe4c973bb1899861ae55fd17aed3e
parent4ddfecc79d1e5711f976ed706b79fb8f7eaee610 (diff)
downloadgnome-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.c14
-rw-r--r--panels/mouse/cc-mouse-panel.ui15
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>