diff options
author | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2022-01-19 19:39:04 -0300 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2022-01-20 02:23:42 +0000 |
commit | 82c87578cd4a484fc2d2dfe824c08af9f6a6f046 (patch) | |
tree | f14231e2412df896bfe86c89f7b311f648e4b076 | |
parent | 4209c510da67ebdac1fcab2fb0f6723fe127cef8 (diff) | |
download | gnome-control-center-82c87578cd4a484fc2d2dfe824c08af9f6a6f046.tar.gz |
window: Install action to navigate main leaflet
This allows implementing the back button of panel titlebars
trivially, which is also done in this commit.
-rw-r--r-- | panels/applications/cc-applications-panel.ui | 2 | ||||
-rw-r--r-- | panels/display/cc-display-panel.ui | 2 | ||||
-rw-r--r-- | panels/network/cc-wifi-panel.ui | 2 | ||||
-rw-r--r-- | shell/cc-panel.ui | 2 | ||||
-rw-r--r-- | shell/cc-window.c | 13 |
5 files changed, 21 insertions, 0 deletions
diff --git a/panels/applications/cc-applications-panel.ui b/panels/applications/cc-applications-panel.ui index 98ea10fdd..4c7e7979c 100644 --- a/panels/applications/cc-applications-panel.ui +++ b/panels/applications/cc-applications-panel.ui @@ -10,6 +10,8 @@ <object class="GtkButton"> <property name="visible" bind-source="CcApplicationsPanel" bind-property="folded" bind-flags="default|sync-create" /> <property name="icon-name">go-previous-symbolic</property> + <property name="action-name">window.navigate</property> + <property name="action-target">0</property> <!-- 0: ADW_NAVIGATION_DIRECTION_BACK --> </object> </child> <property name="title-widget"> diff --git a/panels/display/cc-display-panel.ui b/panels/display/cc-display-panel.ui index 4de2fb2fb..30c062b45 100644 --- a/panels/display/cc-display-panel.ui +++ b/panels/display/cc-display-panel.ui @@ -72,6 +72,8 @@ <object class="GtkButton"> <property name="visible" bind-source="CcDisplayPanel" bind-property="folded" bind-flags="default|sync-create" /> <property name="icon-name">go-previous-symbolic</property> + <property name="action-name">window.navigate</property> + <property name="action-target">0</property> <!-- 0: ADW_NAVIGATION_DIRECTION_BACK --> </object> </child> <property name="title-widget"> diff --git a/panels/network/cc-wifi-panel.ui b/panels/network/cc-wifi-panel.ui index 1a1f44ff9..570c3355f 100644 --- a/panels/network/cc-wifi-panel.ui +++ b/panels/network/cc-wifi-panel.ui @@ -10,6 +10,8 @@ <object class="GtkButton"> <property name="visible" bind-source="CcWifiPanel" bind-property="folded" bind-flags="default|sync-create" /> <property name="icon-name">go-previous-symbolic</property> + <property name="action-name">window.navigate</property> + <property name="action-target">0</property> <!-- 0: ADW_NAVIGATION_DIRECTION_BACK --> </object> </child> diff --git a/shell/cc-panel.ui b/shell/cc-panel.ui index 4e0f9c5fe..e7798bb63 100644 --- a/shell/cc-panel.ui +++ b/shell/cc-panel.ui @@ -18,6 +18,8 @@ <object class="GtkButton"> <property name="visible" bind-source="CcPanel" bind-property="folded" bind-flags="default|sync-create" /> <property name="icon-name">go-previous-symbolic</property> + <property name="action-name">window.navigate</property> + <property name="action-target">0</property> <!-- 0: ADW_NAVIGATION_DIRECTION_BACK --> </object> </child> <property name="title-widget"> diff --git a/shell/cc-window.c b/shell/cc-window.c index 589f5a45a..633139e5f 100644 --- a/shell/cc-window.c +++ b/shell/cc-window.c @@ -480,6 +480,17 @@ switch_to_previous_panel (CcWindow *self) } /* Callbacks */ + +static void +navigate_action_cb (GtkWidget *widget, + const gchar *action_name, + GVariant *parameter) +{ + CcWindow *self = CC_WINDOW (widget); + + adw_leaflet_navigate (self->main_leaflet, g_variant_get_int32 (parameter)); +} + static void on_main_leaflet_folded_changed_cb (CcWindow *self) { @@ -811,6 +822,8 @@ cc_window_class_init (CcWindowClass *klass) gtk_widget_class_add_binding_action (widget_class, GDK_KEY_w, GDK_CONTROL_MASK, "window.close", NULL); gtk_widget_class_add_binding_action (widget_class, GDK_KEY_W, GDK_CONTROL_MASK, "window.close", NULL); + gtk_widget_class_install_action (widget_class, "window.navigate", "i", navigate_action_cb); + g_type_ensure (CC_TYPE_PANEL_LIST); } |