The sibling_id function has a complex if-else, to flatten that
I've split the functionality in three different functions with
one if-else in each one so the code is easier to read.
- Ctrl+PageUp and Ctrl+PageDown to go to the next/previous room of the list
- Ctrl+Shift+PageUp and Ctrl+Shift+PageUp to go to the next/previous room with unread messages
- Ctrl+Home and Ctrl+End to go to the first/last room of the list
- PageUp and PageDown to go up/down in the history
Fixes#49
Previously on both the room list and the message list,
our GtkScrolledWindows would not scroll with our focus.
This meant users that relied on keyboard navigation were
stuck at the top of our room list and the bottom of our
message list.
Now we scroll both lists as focus moves, improving
navigation for keyboard users.
Previously we cached typing_users when we saved our
state before closing, which lead to odd behaviour
when re-opening Fractal where it showed a user as typing
incorrectly.
Now we reset typing_users as we save the room.
Closes https://gitlab.gnome.org/GNOME/fractal/issues/462
Our current margins are a little too big for a mobile screen.
So, we reduce them to 6px when we detect that the app is
folded with HdyLeaflet.
Closes https://gitlab.gnome.org/GNOME/fractal/issues/480
Previously we were using a script to grab our sources
automatically. However, this was error-prone and meson
didn't actually understand the output.
Now we declare our sources manually. This helps meson
know when to trigger a build based on what files have
changed.
Instead of putting target/ and in the source
directory, we can tell our cargo script to put both target
and our cargo-home in meson's build directory. This means
that when triggering a rebuild through meson via tooling
like Builder, Fractal will actually rebuild.
Allows us to get rid of build.rs, which was only used to
compile resources. static_resource.rs is now created by
meson, and the meson path is used for include_bytes!.
Previously we were using the env! macro to determine
build-time variables like version, app ID, and locale dir.
Instead of relying on env vars, we can create a configuration
file with meson and import it.
mnemonics are a tool used for faster keyboard navigation,
and help with accessibility.
This commit adds mnemonics for every entry and button that
either has a label or doesn't have another shortcut.
Adds keyboard and mouse shortcuts for the back action
in the login view. Now users can press back on their
mouse or hit Escape to go back in the login stack.
This is a complete overhaul over the interface for login.
* widgetifies the login view (removes app/connect/login.rs)
* Instead of asking for the identity server, uses .well-known
* No longer assumes a homeserver
Closes#448
Branches the login flow off from the main window's UI file.
Like the account settings view we can add it to the stack
manually at run-time. This cuts down greatly on the
complexity of the main_window file.