Daniel Brötzmann pushed to branch mainwindow at gajim / gajim
Commits: 1d81a63c by wurstsalat at 2021-10-30T21:25:38+02:00 ConversationView: Read marker improvements
- - - - -
2 changed files:
- gajim/gtk/conversation/rows/read_marker.py - gajim/gtk/conversation/view.py
Changes:
===================================== gajim/gtk/conversation/rows/read_marker.py ===================================== @@ -26,6 +26,7 @@ def __init__(self, account, contact): BaseRow.__init__(self, account, widget='label') self.type = 'read_marker' self.timestamp = datetime.fromtimestamp(0) + self._last_incoming_timestamp = datetime.fromtimestamp(0)
contact.connect('nickname-update', self._on_nickname_update)
@@ -43,7 +44,15 @@ def _on_nickname_update(self, contact, _signal_name): self.label.set_text(text)
def set_timestamp(self, timestamp): + if timestamp < self._last_incoming_timestamp: + return + self.timestamp = timestamp + self.changed() self.set_no_show_all(False) self.show_all() + + def set_last_incoming_timestamp(self, timestamp): + if timestamp > self._last_incoming_timestamp: + self._last_incoming_timestamp = timestamp
===================================== gajim/gtk/conversation/view.py ===================================== @@ -243,17 +243,24 @@ def add_message(self,
if message.type == 'chat': self._message_id_row_map[message_id] = message + + if kind == 'incoming': + self._read_marker_row.set_last_incoming_timestamp( + message.timestamp) if marker is not None and marker == 'displayed': self.set_read_marker(message_id) + self._insert_message(message)
def _insert_message(self, message): self.add(message) self._add_date_row(message.timestamp) self._check_for_merge(message) + if message.kind == 'incoming': if message.timestamp > self._read_marker_row.timestamp: self._read_marker_row.hide() + GLib.idle_add(message.queue_resize)
def _add_date_row(self, timestamp):
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/1d81a63c2e9b79f25547ee4d2a666ec48...