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/0ecae706ca7fc094398be32d28b393b77c3bfa97
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/0ecae706ca7fc094398be32d28b393b77c3bfa97
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits