Since they’re custom widgets, they need custom CSS to define a focus
outline, and can’t rely on GTK providing it for them.
Ideally we’d be using the same `$focus_border_color` as GTK does, and
adjusting it for dark and high-contrast themes, but GTK doesn’t export
that colour so we have to work around it.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Fixes: #53
This is a type-ahead search which filters the app list by app name.
It’s always visible because search is a very obvious interaction the
user might want to do to find an app in the app list. That’s why
`GtkSearchBar` is not being used here.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Fixes: #31
The `GtkListBox` already correctly works out when to show/hide the
placeholder; we don’t need to do that ourselves. It actually breaks
things if we hide the placeholder, since `GtkListBox` then doesn’t
re-show it.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
This simplifies the code a little and will allow binding to it in an
upcoming commit.
It introduces no functional changes.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Helps: #31
Required for switching to `gnome.post_install()` function
with `update_desktop_database` kwarg.
Even newer version is available in bullseye-backports in Debian
so it should probably be fine.
`libdbus-1-dev` is needed for the interfaces dir from `dbus-1.pc`, and
`desktop-file-utils` is needed for `update-desktop-database`.
These are needed due to updating Debian Unstable.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Only the controls inside them should be focusable. This saves having to
press the tab key twice as much as needed.
The row to open the restrict applications dialogue remains focusable, as
it doesn’t contain an interactive widget. It’s essentially one big
button.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Helps: #52
The toggle switches remain focusable, but the rows should not be
focusable. Otherwise tabbing through the list involves two tabs per row.
The screen reader continues to work correctly with this MR applied: when
tabbing to a new switch, it reads out the label from the row, plus the
switch state.
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Fixes: #52
An app which currently depends on malcontent-ui-0.pc or
MalcontentUi-0.gir will fail to compile or run, respectively, aganist
the GTK 4-ified version.
Bump the API version, which is used in both those names. This will also
(I think) allow the two versions of libmalcontent-ui to be
parallel-installed.
When validating the .ui files, we need to determine the path to GTK 4's
relaxng schema. Previously this was erroneously looked up in the prefix
of GTK 3, which malcontent otherwise doesn't depend on.
Define the GTK dependency once, and use that variable everywhere.