universal-access: Open subpage when CcPanel.subpage is set

This allows launching the Accessibility panel subpages
from the command line.

See https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2940
This commit is contained in:
Automeris naranja 2024-03-13 15:29:56 -03:00 committed by Felipe Borges
parent e8b261ebfc
commit 52323e2620

View file

@ -105,6 +105,21 @@ cc_ua_panel_class_init (CcUaPanelClass *klass)
g_type_ensure (CC_TYPE_UA_ZOOM_PAGE);
}
static void
on_subpage_set (CcUaPanel *self)
{
AdwNavigationPage *subpage;
g_autofree gchar *tag = NULL;
g_object_get (self, "subpage", &tag, NULL);
if (!tag)
return;
subpage = adw_navigation_view_find_page (self->main_nav_view, tag);
if (subpage)
adw_navigation_view_push (self->main_nav_view, subpage);
}
static void
cc_ua_panel_init (CcUaPanel *self)
{
@ -118,4 +133,6 @@ cc_ua_panel_init (CcUaPanel *self)
g_settings_bind (self->a11y_settings, KEY_ALWAYS_SHOW_STATUS,
self->show_ua_menu_row, "active",
G_SETTINGS_BIND_DEFAULT);
g_signal_connect_object (self, "notify::subpage", G_CALLBACK (on_subpage_set), self, G_CONNECT_SWAPPED);
}