Philipp Hörist pushed to branch master at gajim / gajim


Commits:
1387e046 by nicoco at 2024-05-06T14:47:05+00:00
fix: Prevent message row merging if message receipt status differ

- - - - -


2 changed files:

- gajim/gtk/conversation/rows/message.py
- gajim/gtk/conversation/view.py


Changes:

=====================================
gajim/gtk/conversation/rows/message.py
=====================================
@@ -189,7 +189,8 @@ def _set_content(self, message: Message) -> None:
             self._message_icons.set_security_label_visible(True)
 
         # Receipts are always for the original message, never the correction
-        if self._original_message.receipt is not None:
+        self.has_receipt = self._original_message.receipt is not None
+        if self.has_receipt:
             self.show_receipt(True)
 
         self.state = MessageState(message.state)
@@ -379,6 +380,9 @@ def is_mergeable(self, message: MessageRow) -> bool:
             return False
         if not self.is_same_securitylabels(message):
             return False
+        if app.settings.get('positive_184_ack'):
+            if self.has_receipt != message.has_receipt:
+                return False
         return abs(message.timestamp - self.timestamp) < MERGE_TIMEFRAME
 
     def get_text(self) -> str:


=====================================
gajim/gtk/conversation/view.py
=====================================
@@ -569,8 +569,7 @@ def _check_for_merge(self, message: BaseRow) -> None:
         if ancestor is None:
             self._update_descendants(message)
         else:
-            if message.is_mergeable(ancestor):
-                message.set_merged(True)
+            message.set_merged(message.is_mergeable(ancestor))
 
     def _find_ancestor(self, message: MessageRow) -> MessageRow | None:
         index = message.get_index()
@@ -822,7 +821,9 @@ def show_message_retraction(self, stanza_id: str, text: 
str) -> None:
     def show_receipt(self, id_: str) -> None:
         message_row = self._get_row_by_message_id(id_)
         if message_row is not None:
+            message_row.has_receipt = True
             message_row.show_receipt(True)
+            self._check_for_merge(message_row)
 
     def show_error(self, id_: str, error: StanzaError) -> None:
         message_row = self._get_row_by_message_id(id_)



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/1387e046bb0c2820aac240416f342e48db23e781

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/1387e046bb0c2820aac240416f342e48db23e781
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to