Philipp Hörist pushed to branch master at gajim / gajim
Commits: 0ecae706 by mjk at 2023-05-09T18:47:24+00:00 imprv: Notifications: Withdraw all when a corresponding chat is read
Fixes #11030
- - - - -
3 changed files:
- gajim/common/events.py - gajim/gtk/chat_list.py - gajim/gtk/notification.py
Changes:
===================================== gajim/common/events.py ===================================== @@ -122,6 +122,13 @@ class Notification(ApplicationEvent): icon_name: Optional[str] = None
+@dataclass +class ChatRead(ApplicationEvent): + name: str = field(init=False, default='chat-read') + account: str + jid: JID + + @dataclass class StanzaSent(ApplicationEvent): name: str = field(init=False, default='stanza-sent')
===================================== gajim/gtk/chat_list.py ===================================== @@ -163,8 +163,9 @@ def get_open_chats(self) -> OpenChatsSettingT:
def mark_as_read(self, account: str, jid: JID) -> None: chat = self._chats.get((account, jid)) - if chat is not None: + if chat is not None and chat.get_real_unread_count() > 0: chat.reset_unread() + app.ged.raise_event(events.ChatRead(account=account, jid=jid))
def toggle_chat_pinned(self, account: str, jid: JID) -> None: row = self._chats[(account, jid)]
===================================== gajim/gtk/notification.py ===================================== @@ -83,7 +83,8 @@ def __init__(self) -> None:
self.register_events([ ('notification', ged.GUI2, self._on_notification), - ('account-enabled', ged.GUI2, self._on_account_enabled) + ('account-enabled', ged.GUI2, self._on_account_enabled), + ('chat-read', ged.GUI2, self._on_chat_read) ])
for client in app.get_clients(): @@ -111,6 +112,9 @@ def _on_account_enabled(self, event: events.AccountEnabled) -> None: client = app.get_client(event.account) client.connect_signal('state-changed', self._on_client_state_changed)
+ def _on_chat_read(self, event: events.ChatRead) -> None: + self._withdraw(['new-message', event.account, event.jid]) + def _on_client_state_changed(self, client: Client, _signal_name: str,
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/0ecae706ca7fc094398be32d28b393b77...