Daniel Brötzmann pushed to branch mainwindow at gajim / gajim
Commits: 12bc0c21 by wurstsalat at 2021-11-13T20:59:05+01:00 ChatList: Set stanza_id correctly when receiving MAM messages
- - - - - 256dd758 by wurstsalat at 2021-11-14T00:03:15+01:00 Don't fail if active workspace is None
- - - - - 1d8eb84b by wurstsalat at 2021-11-14T00:06:14+01:00 Notifications: Suppress for MAM messages
- - - - -
5 changed files:
- gajim/gtk/chat_list.py - gajim/gtk/controls/base.py - gajim/gtk/controls/chat.py - gajim/gtk/controls/groupchat.py - gajim/gtk/main.py
Changes:
===================================== gajim/gtk/chat_list.py ===================================== @@ -340,11 +340,13 @@ def _on_message_received(self, event): row.set_nick(nick) if event.name == 'mam-message-received': row.set_timestamp(event.properties.mam.timestamp) + row.set_stanza_id(event.stanza_id) else: row.set_timestamp(event.properties.timestamp) + row.set_stanza_id(event.properties.stanza_id.id) row.set_message_text( event.msgtxt, additional_data=event.additional_data) - row.set_stanza_id(event.properties.stanza_id.id) + self._add_unread(row, event.properties) self.invalidate_sort()
===================================== gajim/gtk/controls/base.py ===================================== @@ -1111,6 +1111,7 @@ def add_message(self, kind, name, tim, + notify, displaymarking=None, msg_log_id=None, message_id=None, @@ -1154,7 +1155,8 @@ def add_message(self, self.save_message(text, 'received')
# Issue notification - self._notify(name, text, tim) + if notify: + self._notify(name, text, tim)
# Send chat marker if we’re actively following the chat chat_active = app.window.is_chat_active(
===================================== gajim/gtk/controls/chat.py ===================================== @@ -415,7 +415,8 @@ def _on_mam_message_received(self, event): correct_id=event.correct_id, message_id=event.properties.id, stanza_id=event.stanza_id, - additional_data=event.additional_data) + additional_data=event.additional_data, + notify=False)
def _on_message_received(self, event): if not event.msgtxt: @@ -605,7 +606,8 @@ def add_message(self, stanza_id=None, correct_id=None, message_id=None, - additional_data=None): + additional_data=None, + notify=True):
if additional_data is None: additional_data = AdditionalDataDict() @@ -620,6 +622,7 @@ def add_message(self, kind, name, tim, + notify, displaymarking=displaymarking, msg_log_id=msg_log_id, message_id=message_id,
===================================== gajim/gtk/controls/groupchat.py ===================================== @@ -674,7 +674,8 @@ def _on_mam_message_received(self, event): correct_id=event.correct_id, message_id=event.properties.id, stanza_id=event.stanza_id, - additional_data=event.additional_data) + additional_data=event.additional_data, + notify=False)
def _on_gc_message_received(self, event): if event.properties.muc_nickname is None: @@ -710,7 +711,8 @@ def add_message(self, correct_id=None, message_id=None, stanza_id=None, - additional_data=None): + additional_data=None, + notify=True):
if contact == self.contact.nickname: kind = 'outgoing' @@ -729,6 +731,7 @@ def add_message(self, kind, contact, tim, + notify, displaymarking=displaymarking, correct_id=correct_id, message_id=message_id,
===================================== gajim/gtk/main.py ===================================== @@ -1,3 +1,5 @@ +from typing import Optional + import logging import os
@@ -16,6 +18,7 @@ from .adhoc import AdHocCommand from .account_side_bar import AccountSideBar from .app_side_bar import AppSideBar +from .workspace_side_bar import Workspace from .workspace_side_bar import WorkspaceSideBar from .main_stack import MainStack from .dialogs import DialogButton @@ -323,7 +326,7 @@ def show_account_page(self, account): self._account_side_bar.activate_account_page(account) self._main_stack.show_account(account)
- def get_active_workspace(self): + def get_active_workspace(self) -> Optional[Workspace]: return self._workspace_side_bar.get_active_workspace()
def is_chat_active(self, account, jid): @@ -390,6 +393,8 @@ def _add_group_chat(self, _action, param):
def add_group_chat(self, account, jid, select=False): workspace_id = self.get_active_workspace() + if workspace_id is None: + workspace_id = self._workspace_side_bar.get_first_workspace() self._chat_page.add_chat_for_workspace(workspace_id, account, jid, @@ -411,6 +416,8 @@ def add_chat(self, account, jid, type_, select=False):
def add_private_chat(self, account, jid, select=False): workspace_id = self.get_active_workspace() + if workspace_id is None: + workspace_id = self._workspace_side_bar.get_first_workspace() self._chat_page.add_chat_for_workspace(workspace_id, account, jid,
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/8660c9b6da254b26dc0bf88ad7b1c160...