At the moment the search entry is consuming the Escape key press, so we
have to manually tell it what to do with it.
We clear the search on the first press, if there is input, and close the
window otherwise.
AdwNavigationView is a new widget meant to be used specifically
for navigation, unlike AdwLeaflet which was multipurpose.
AdwNavigationView provides a cleaner API, and when used in
conjuction with the new AdwToolbarView widget we get automatic
titles, back buttons, gestures, actions, and window controls.
In addition, AdwToolbarView provides a new style with flat headers
and an undershoot.
This commit ports the keyboard shortcut dialog to use both of
these new widgets, allowing us to simplify our navigation.
The class Gtk.MessageDialog is deprecated in gtk 4.10.
This change remove class deprecated and uses the new class
AdwMessageDialog for view the message of 'reset all shortcut'.
keyboard: fix white space in function
keyboard: align arguments
keyboard: fix alignment of arguments in function
Clicking on the 'Custom Shortcuts' row when there are no custom
shortcuts causes the 'Add Custom Shortcuts' dialog to be shown for
all subsequent sessions. This is because the first stack defined was
'Add Custom Shortcuts', it would always be visible, as it was no
longer defined which stack was going to be shown.
Fixes (https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2479)
Since the main view is not visible, there is no point in updating
search results when we are in a sub-view. This will happen as we
always listen to keyboard events for the whole window - regardless
of whether the search entry has focus or not.
Now we never show search entry in subpages, so don't hide search entry
when switching to subviews. Otherwise, the search entry will be hidden
when the user switches back to the main view.
We were updating the state when the back button is pressed, not when
the pages were changed, and so the dialog state was broken if the
user went back by swipe (or means other than clicking the back button).
Fix it by handling updating state when the visible view changes.
- Use GListModel for creation, filter and sorting of shortcut sections
- Use AdwStatusPage instead of handling empty states manually
Fixes#1212#1735#2105#2159#2160#2169
The empty search state looks out-of place due to it being nested inside
a listbox. This is because we can only detect empty states through
gtk_list_filter_func().
Refine it by making the empty search placeholder a child of the main stack.
Introduce an additional helper function to detect when all the listbox
rows would be hidden by the filter.
As a part of https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1222