When a user doesn't have permission to send a message to the room let's
block out the text box.
Signed-off-by: Alistair Francis <alistair@alistair23.me>
Disable the ability to write text in rooms where the user doesn't have
write permission.
This fixes: https://gitlab.gnome.org/GNOME/fractal/issues/500
Signed-off-by: Alistair Francis <alistair@alistair23.me>
The current power_levels variable really only describes the admins
(hence the call to get_admins()) so let's rename it to be more accurate.
Signed-off-by: Alistair Francis <alistair@alistair23.me>
Currently when opening the room directory and scrolling down, the
already existing rooms will get appended to the list as well as the
new ones causing duplicates.
Only appending new rooms fixes this issue.
A function in directory.rs is currently called set_directory_rooms, but
it's used in a way so that it appends rooms to the directory list.
Renaming the function to append_directory_rooms will clarify what it's
actually doing.
Currently the autocompletion-popover has a margin-left in its stylesheet
which does look misplaced if the window has a small width.
To fix this remove the left margin of the autocompletion-popover once the
transition between the 'narrow' and 'non-narrow' mode happens.
Fixes https://gitlab.gnome.org/GNOME/fractal/issues/516
The quit method of AppOp was called twice because it was called on the
window delete event closure and also in the app shutdown. This patch
removes the call in the window delete event so we only left one call.
Fix https://gitlab.gnome.org/GNOME/fractal/issues/506
The latest version of the libhandy bindings requires an
update to the latest version of the gtk-rs bindings. This
update comes with a few changes, including the removal of the
`Into<Option<T>` pattern in favor of explicitly using `Some(T)` for options.
Previously we did not enable syntax highlighting if the user
already had markdown enabled during startup. This commit
ensures that we enable it.
Closes https://gitlab.gnome.org/GNOME/fractal/issues/302
GTK 3.24.7 has fixed the gtk_window_present() not working in Wayland
issue described here: https://gitlab.gnome.org/GNOME/gtk/issues/624.
Since this has been fixed update our minimum GTK version and use the
present() function.
Signed-off-by: Alistair Francis <alistair@alistair23.me>
The margin of the typing_label was not exactly aligned with the text, we
have the padding left of the list (18/6) plus the size of the avatar
(40) plus double of the padding of the row (9 * 2).
With the handy column the list left padding changes from 18 to 6 so we
need to control that case and change the margin according to that.
Fix https://gitlab.gnome.org/GNOME/fractal/issues/492
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