Daniel Brötzmann pushed to branch master at gajim / gajim
Commits: fc4f9c43 by wurstsalat at 2022-08-16T09:22:05+02:00 cfix: Don’t re-use ReadMarkerRow and ScrollHintRow when switching contacts
- - - - -
3 changed files:
- gajim/gtk/conversation/rows/read_marker.py - gajim/gtk/conversation/rows/scroll_hint.py - gajim/gtk/conversation/view.py
Changes:
===================================== gajim/gtk/conversation/rows/read_marker.py ===================================== @@ -26,8 +26,8 @@
class ReadMarkerRow(BaseRow): - def __init__(self, account: str, contact: ChatContactT) -> None: - BaseRow.__init__(self, account, widget='label') + def __init__(self, contact: ChatContactT) -> None: + BaseRow.__init__(self, contact.account, widget='label') self.set_activatable(False) self.type = 'read_marker' self.timestamp = datetime.fromtimestamp(0)
===================================== gajim/gtk/conversation/rows/scroll_hint.py ===================================== @@ -39,6 +39,7 @@ def __init__(self, account: str) -> None: self.grid.attach(self.label, 0, 1, 1, 1)
self.set_history_complete(False) + self.show_all()
def set_history_complete(self, complete: bool) -> None: if complete:
===================================== gajim/gtk/conversation/view.py ===================================== @@ -119,24 +119,27 @@ def switch_contact(self, contact: ChatContactT) -> None: account=contact.account, jid=contact.jid)
- self._read_marker_row = ReadMarkerRow(contact.account, contact) - self.add(self._read_marker_row) - - self._scroll_hint_row = ScrollHintRow(contact.account) - self.add(self._scroll_hint_row) - def get_row_at_index(self, index: int) -> BaseRow: return cast(BaseRow, Gtk.ListBox.get_row_at_index(self, index))
def reset(self) -> None: - for row in self.get_children()[2:]: - if isinstance(row, ReadMarkerRow): - continue + for row in self.get_children(): row.destroy()
self._row_count = 0 self._active_date_rows = set() self._message_id_row_map = {} + self._read_marker_row = None + self._scroll_hint_row = None + + if self._contact is not None: + # These need to be present if ConversationView is reset + # without switch_contact being invoked + self._read_marker_row = ReadMarkerRow(self._contact) + self.add(self._read_marker_row) + + self._scroll_hint_row = ScrollHintRow(self._contact.account) + self.add(self._scroll_hint_row)
def get_first_message_row(self) -> Optional[MessageRow]: for row in self.get_children():
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/fc4f9c43d6224f966de9ade9a68b6cad3...