don't fail when we get chat / normal messages from a room_jid. Fixes #5276
This commit is contained in:
parent
d89abc9195
commit
6124a60b8f
|
@ -2503,6 +2503,13 @@ class SingleMessageWindow:
|
||||||
|
|
||||||
def on_single_message_window_destroy(self, widget):
|
def on_single_message_window_destroy(self, widget):
|
||||||
self.instances.remove(self)
|
self.instances.remove(self)
|
||||||
|
c = gajim.contacts.get_contact_with_highest_priority(self.account,
|
||||||
|
self.from_whom)
|
||||||
|
if c.is_groupchat() and not self.from_whom in \
|
||||||
|
gajim.interface.minimized_controls[self.account] and self.action == \
|
||||||
|
'receive' and gajim.events.get_nb_roster_events(self.account,
|
||||||
|
self.from_whom, types=['chat', 'normal']) == 0:
|
||||||
|
gajim.interface.roster.remove_groupchat(self.from_whom, self.account)
|
||||||
|
|
||||||
def set_cursor_to_end(self):
|
def set_cursor_to_end(self):
|
||||||
end_iter = self.message_tv_buffer.get_end_iter()
|
end_iter = self.message_tv_buffer.get_end_iter()
|
||||||
|
|
|
@ -807,6 +807,11 @@ class RosterWindow:
|
||||||
gajim.contacts.add_contact(account, contact)
|
gajim.contacts.add_contact(account, contact)
|
||||||
self.add_contact(jid, account)
|
self.add_contact(jid, account)
|
||||||
else:
|
else:
|
||||||
|
if jid not in gajim.interface.minimized_controls[account]:
|
||||||
|
# there is a window that we can minimize
|
||||||
|
gc_control = gajim.interface.msg_win_mgr.get_gc_control(jid,
|
||||||
|
account)
|
||||||
|
gajim.interface.minimized_controls[account][jid] = gc_control
|
||||||
contact.show = show
|
contact.show = show
|
||||||
contact.status = status
|
contact.status = status
|
||||||
self.adjust_and_draw_contact_context(jid, account)
|
self.adjust_and_draw_contact_context(jid, account)
|
||||||
|
@ -2919,6 +2924,12 @@ class RosterWindow:
|
||||||
def on_groupchat_maximized(self, widget, jid, account):
|
def on_groupchat_maximized(self, widget, jid, account):
|
||||||
'''When a groupchat is maximised'''
|
'''When a groupchat is maximised'''
|
||||||
if not jid in gajim.interface.minimized_controls[account]:
|
if not jid in gajim.interface.minimized_controls[account]:
|
||||||
|
# Already opened?
|
||||||
|
gc_control = gajim.interface.msg_win_mgr.get_gc_control(jid, account)
|
||||||
|
if gc_control:
|
||||||
|
mw = gajim.interface.msg_win_mgr.get_window(jid, account)
|
||||||
|
mw.set_active_tab(gc_control)
|
||||||
|
mw.window.window.focus()
|
||||||
return
|
return
|
||||||
ctrl = gajim.interface.minimized_controls[account][jid]
|
ctrl = gajim.interface.minimized_controls[account][jid]
|
||||||
mw = gajim.interface.msg_win_mgr.get_window(jid, account)
|
mw = gajim.interface.msg_win_mgr.get_window(jid, account)
|
||||||
|
|
|
@ -250,7 +250,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
|
||||||
|
|
||||||
if self.control:
|
if self.control:
|
||||||
parent_win = self.control.parent_win
|
parent_win = self.control.parent_win
|
||||||
if self.control == parent_win.get_active_control() and \
|
if parent_win and self.control == parent_win.get_active_control() and \
|
||||||
parent_win.window.has_focus:
|
parent_win.window.has_focus:
|
||||||
focused = True
|
focused = True
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue