AdwNavigationView is a new widget meant to be used specifically
for navigation, unlike AdwLeaflet which was multipurpose.
AdwNavigationView provides a cleaner API and gives us automatic
titles, back buttons, gestures, actions, and windowcontrols.
AdwToolbarView is a utility widget that simplifies setting the
top and bottom bars for simple views, giving us styling with
undershoots, the ability to use flat headers in scrolling views,
and proper styling when used with the new sidebar widgets.
This commit ports the Accessibility panel to AdwNavigationView
and AdwToolbarView. Subpages now subclass AdwNavigationPage
and contain toolbar views - meaning their headers are joined with
their content. Their titles and their back buttons are automatically
handled by libadwaita, with proper accessibility.
The actions provided by AdwNavigationPage allow us to remove
the custom listbox we used for the `row-activated` signal. Rows
now use the `navigation.push` action in order to push a subpage
by tag.
Currently our AdwToolbarViews use the `raised` style, as we
have not ported to the new sidebar widget yet.
The start title buttons of the main window should be displayed if and
only if the end title buttons are. Only the left-most header bar should have
the start title button set and only right-most header bar the end title buttons.
Therefore, the title buttons property should be bound to the leaflet state:
When unfolded the start title buttons of the sidebar's header bar are
the only ones visible then, and not a second pair in the panel's header bar.
Likewise, in a folded state of the leaflet, the panel's header bar displays
all availble title buttons – start and end – as the panel is the only widget
displaying a header bar.
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
The custom listboxes serve another purpose: to handle
row activation. Instead of using a custom listbox, we
can simply listen to the `activated` signal on the
rows that don't have a switch.
We were using this to move between groups and scroll
the page, but that's not necessary. All we need
to do is set `scroll-to-focus` on our GtkViewport.
This commit removes the keynav-failed callback
and all associated plumbing.
This was quite a huge port, but fortunately it mostly involved
removing tons of deprecated widgets (without replacement; just
drop them) and adjusting packing properties.
Since the gsettings is for the repeat-interval but the
GUI is for Speed, we need to reverse the mapped direction.
We have to turn off the fill indicator (has_origin) for Speed
since it fills the right side instead of the left. We turn
off the indicator for Delay to match.
Closes: https://gitlab.gnome.org/GNOME/gnome-control-center/issues/311