diff --git a/panels/mouse/cc-mouse-panel.c b/panels/mouse/cc-mouse-panel.c index 5da21381a8452bcda21c102dbeff05971a1618dc..60076898d8853779f035a695d8b9e4bb10dcfcdb 100644 --- a/panels/mouse/cc-mouse-panel.c +++ b/panels/mouse/cc-mouse-panel.c @@ -47,6 +47,7 @@ struct _CcMousePanel GtkBox *primary_button_box; GtkToggleButton *primary_button_left; GtkToggleButton *primary_button_right; + GtkWidget *power_settings_row; AdwPreferencesPage*preferences; CcSplitRow *two_finger_push_row; GtkStack *title_stack; @@ -490,6 +491,23 @@ cc_mouse_panel_init (CcMousePanel *self) setup_dialog (self); } +static gboolean +on_power_settings_row_clicked_cb (CcMousePanel *self) +{ + g_autoptr(GError) error = NULL; + CcShell *shell; + CcPanel *panel; + + g_assert (CC_IS_MOUSE_PANEL (self)); + + panel = (CcPanel *)gtk_widget_get_ancestor (GTK_WIDGET (self), CC_TYPE_PANEL); + shell = cc_panel_get_shell (CC_PANEL (panel)); + if (!cc_shell_set_active_panel_from_id (shell, "power", NULL, &error)) + g_warning ("Failed to activate 'power' panel: %s", error->message); + + return TRUE; +} + static void cc_mouse_panel_class_init (CcMousePanelClass *klass) { @@ -515,6 +533,7 @@ cc_mouse_panel_class_init (CcMousePanelClass *klass) gtk_widget_class_bind_template_child (widget_class, CcMousePanel, primary_button_box); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, primary_button_left); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, primary_button_right); + gtk_widget_class_bind_template_child (widget_class, CcMousePanel, power_settings_row); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, preferences); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, title_stack); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, tap_to_click_row); @@ -529,6 +548,7 @@ cc_mouse_panel_class_init (CcMousePanelClass *klass) gtk_widget_class_bind_template_child (widget_class, CcMousePanel, touchpad_typing_row); gtk_widget_class_bind_template_child (widget_class, CcMousePanel, two_finger_push_row); + gtk_widget_class_bind_template_callback (widget_class, on_power_settings_row_clicked_cb); gtk_widget_class_bind_template_callback (widget_class, on_touchpad_scroll_method_changed_cb); gtk_widget_class_bind_template_callback (widget_class, test_button_clicked_cb); } diff --git a/panels/mouse/cc-mouse-panel.h b/panels/mouse/cc-mouse-panel.h index ae83e8eea8bcad278713105eb8bdb4e623cecee9..baa60d57b1773774f52e7f4c261103c8abb6b8ec 100644 --- a/panels/mouse/cc-mouse-panel.h +++ b/panels/mouse/cc-mouse-panel.h @@ -21,6 +21,7 @@ #pragma once #include +#include G_BEGIN_DECLS diff --git a/panels/mouse/cc-mouse-panel.ui b/panels/mouse/cc-mouse-panel.ui index 578d8470327dccf2517390884382707c39a1301a..3a315c20d3611f32835b9e3747cd83c9603fbd19 100644 --- a/panels/mouse/cc-mouse-panel.ui +++ b/panels/mouse/cc-mouse-panel.ui @@ -176,6 +176,29 @@ + + + + + Po_wer Settings + True + " + + + + + Details about mouse batteries can be viewed in the Power settings panel + 9 + 0.0 + True + + + + + + @@ -313,3 +336,4 @@ +