diff options
| author | fiaxh <git@lightrise.org> | 2025-09-16 11:31:28 +0200 |
|---|---|---|
| committer | fiaxh <git@lightrise.org> | 2025-09-17 12:50:09 +0200 |
| commit | fa678bd2cf60ebdcda652794bfb5e06b7bd7917f (patch) | |
| tree | 16097f98af5b25337e07b855fc649923ca6733d7 /libdino | |
| parent | 58116203cd66e5fadd17d40ad4299dfdb6e47d88 (diff) | |
Fix message id used for message corrections in MUCs
Diffstat (limited to 'libdino')
| -rw-r--r-- | libdino/src/service/message_correction.vala | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libdino/src/service/message_correction.vala b/libdino/src/service/message_correction.vala index e6401a05..08145a6b 100644 --- a/libdino/src/service/message_correction.vala +++ b/libdino/src/service/message_correction.vala @@ -40,7 +40,7 @@ public class MessageCorrection : StreamInteractionModule, MessageListener { } public void set_correction(Conversation conversation, Message message, Message old_message) { - string reference_stanza_id = old_message.edit_to ?? old_message.stanza_id; + string reference_stanza_id = MessageStorage.get_reference_id(old_message); outstanding_correction_nodes[message.stanza_id] = reference_stanza_id; @@ -109,7 +109,8 @@ public class MessageCorrection : StreamInteractionModule, MessageListener { if (!last_messages.has_key(conversation) || !last_messages[conversation].has_key(message.from)) return false; Message original_message = last_messages[conversation][message.from]; - if (original_message.stanza_id != replace_id) return false; + // TODO this should be the referencing id (-> in MUCs the server id), but this implementation is temporarily for backwards-compatibility. + if (original_message.stanza_id != replace_id && original_message.server_id != replace_id) return false; int message_id_to_be_updated = get_latest_correction_message_id(conversation.account.id, replace_id, db.get_jid_id(message.counterpart), message.counterpart.resourcepart); if (message_id_to_be_updated == -1) { |
