summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2011-11-06 14:18:45 +0100
committermathieui <mathieui@mathieui.net>2011-11-06 14:18:45 +0100
commitfbb465a092a192821fea55eae2c7a918edf9fd59 (patch)
tree85912d93210468c971608a8761ec80c7f8493e34 /src
parent12850ed06275fa4bbe499553e8c650b9e4a3ecea (diff)
downloadpoezio-fbb465a092a192821fea55eae2c7a918edf9fd59.tar.gz
poezio-fbb465a092a192821fea55eae2c7a918edf9fd59.tar.bz2
poezio-fbb465a092a192821fea55eae2c7a918edf9fd59.tar.xz
poezio-fbb465a092a192821fea55eae2c7a918edf9fd59.zip
Fixes #2284
Diffstat (limited to 'src')
-rw-r--r--src/core.py7
-rw-r--r--src/tabs.py4
2 files changed, 6 insertions, 5 deletions
diff --git a/src/core.py b/src/core.py
index 70781ebf..05ae2cb1 100644
--- a/src/core.py
+++ b/src/core.py
@@ -1505,14 +1505,15 @@ class Core(object):
self.information_win.refresh()
self.current_tab().input.refresh()
- def disconnect(self, msg=None, reconnect=False):
+ def disconnect(self, msg='', reconnect=False):
"""
Disconnect from remote server and correctly set the states of all
parts of the client (for example, set the MucTabs as not joined, etc)
"""
+ msg = msg or ''
for tab in self.tabs:
- if isinstance(tab, tabs.MucTab):
- muc.leave_groupchat(self.xmpp, tab.name, tab.own_nick, msg)
+ if isinstance(tab, tabs.MucTab) and tab.joined:
+ tab.command_part(msg)
roster.empty()
self.save_config()
# Ugly fix thanks to gmail servers
diff --git a/src/tabs.py b/src/tabs.py
index 4276e163..43dcb2b9 100644
--- a/src/tabs.py
+++ b/src/tabs.py
@@ -570,9 +570,9 @@ class MucTab(ChatTab):
msg = None
if self.joined:
muc.leave_groupchat(self.core.xmpp, self.name, self.own_nick, arg)
- self.joined = False
self.add_message(_("\x195}You left the chatroom\x193}"))
- self.refresh()
+ if self == self.core.current_tab():
+ self.refresh()
self.core.doupdate()
self.core.disable_private_tabs(self.name)