If the previous message has been redacted don't group the messages.
This fixes an issue where a user can post a single message, resuling in
their name and message appearing. Then a user can redact that message,
removing their name and message. Finally they can post a new message
where only the message but not the name appears.
This commit has the downside that if a user redacts a message in the
middle of multiple messages their name will appear redundantly. These
will be fixed by "refresing" the room, by either swapping rooms or
restarting Fractal.
Signed-off-by: Alistair Francis <alistair@alistair23.me>
Before, when a user changed the language for spell check,
that language was saved by gtk application-wide.
With this commit, the language chosen by the user for spell check gets saved
in the Matrix account data of the particular room the language was chosen in;
and, by syncronizing, it also gets saved in the new field `language` of Room.
When the user enters a room, gspell gets set for the language saved
for that room.
warning: cannot borrow `*self` as mutable because it is also borrowed as immutable
--> fractal-gtk/src/appop/room.rs:137:17
|
136 | if let Some(ref active_room) = self.active_room {
| --------------- immutable borrow occurs here
137 | self.set_active_room_by_id(active_room.clone());
| ^^^^ ----------- immutable borrow later used here
| |
| mutable borrow occurs here
When moving our architecture to using GAction, the delete
action was forgotten. This meant that while "Delete Message"
showed in the UI, the button did nothing.
Fixes#515
This guarantees that the (de)serialized structs which
contain URLs in any of their fields will always have
a valid URL string and not just a generic one.
When a user wants to add a phone number or email addess, a verifikation token is sent to them and a dialog is opened to enter it.
Before the commit, after closing the verification dialog, the settings dialog was not refreshed.
Therefore the added <phone number / email adress> would stay in the input
with a spinner spinning next to it until another action was taken.
With this commit, closing the verification dialog refreshes the settings window.
Same situation for email token request verification and phone token request verification:
Before, the user was always shown the error message "Couldn’t add the <email address / phone number.>",
also when the error was due to the fact that the <email / phone> was already in use.
With this commit, that bug is fixed: when the <email / phone> is already in use,
the user is shown the error message "<Email / Phone number> is already in use"
Before, "Medium" was renamed to "lowercase".
With this commit, "Email" and "MsIsdn" are renamed to "email" and "msisdn", respectively.
This commit fixes the bug due to which account settings wouldn't load.
Before, when an error occurred trying to load account settings,
the user would see a spinner until pressing the "go back" button manually.
With this commit, when an error occurs trying to load account settings,
an error dialog opens. Furthermore the "go back" button is activated automatically.
In particular, when the user closes the error dialog,
they find themselves back in the state they came from.
Before, a typing event was sent to the server on every single key release.
A lot of sent typing events were redundant due to the timeout functionality
implemented in the matrix propocol for typing events.
With this commit, this overload of events sent to the server gets avoided by
only sending a new typing event, if the last one was sent more than three seconds ago.
The current Homeserver URL parsing logic unconditionally removes the URL
schema if it's either "http://" or "https://", then prepends
the "https://" schema back immediately after.
While this correctly adds a "https://" schema for an URL without a
schema, it disallows connections to a non-TLS host. Synapse, rightfully
so, disallows non-TLS connections. Connecting to such a host might be
desirable anyway to connect to a logging/debugging reverse proxy such as
mitmproxy or to connect to Pantalaimon, a reverse proxy that enables
client-transparent E2E encryption.
Closes: https://gitlab.gnome.org/GNOME/fractal/issues/520
For new rooms we're not receiving power_levels event, so we need to
assume that the user can write.
This is a quick fix to allow edit new rooms, but it could be better to
request power_levels to the backend when we've no this information so we
can disable the text entry if the user has no permissions to do that,
but without the information we should assume that the user is able to
write because it's the usual case.
Fix https://gitlab.gnome.org/GNOME/fractal/issues/539