summaryrefslogtreecommitdiff
path: root/src/core.py
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2011-04-18 03:34:51 +0200
committerFlorent Le Coz <louiz@louiz.org>2011-04-18 03:34:51 +0200
commitd913e715133756bcab123b2373b25a905707042f (patch)
treedbf4d3fc2eab6110237b4c48d192336d6a8c41cb /src/core.py
parent3aa6e891a5be995f39b4364f8fe525ef9db6262b (diff)
downloadpoezio-d913e715133756bcab123b2373b25a905707042f.tar.gz
poezio-d913e715133756bcab123b2373b25a905707042f.tar.bz2
poezio-d913e715133756bcab123b2373b25a905707042f.tar.xz
poezio-d913e715133756bcab123b2373b25a905707042f.zip
Refresh optimization on chatstates
Diffstat (limited to 'src/core.py')
-rw-r--r--src/core.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/core.py b/src/core.py
index 861e9144..65bd59be 100644
--- a/src/core.py
+++ b/src/core.py
@@ -298,7 +298,8 @@ class Core(object):
return False
tab.chatstate = state
if tab == self.current_tab():
- self.refresh_window()
+ tab.refresh_info_header()
+ self.doupdate()
return True
def on_chatstate_private_conversation(self, message, state):
@@ -307,7 +308,8 @@ class Core(object):
return
tab.chatstate = state
if tab == self.current_tab():
- self.refresh_window()
+ tab.refresh_info_header()
+ self.doupdate()
return True
def on_chatstate_groupchat_conversation(self, message, state):
@@ -317,7 +319,9 @@ class Core(object):
if tab and tab.get_room() and tab.get_room().get_user_by_name(nick):
tab.get_room().get_user_by_name(nick).chatstate = state
if tab == self.current_tab():
- self.refresh_window()
+ tab.user_win.refresh(tab._room.users)
+ tab.input.refresh()
+ self.doupdate()
def open_new_form(self, form, on_cancel, on_send, **kwargs):
"""
@@ -510,7 +514,7 @@ class Core(object):
if conversation is self.current_tab():
self.refresh_window()
else:
- self.current_tab().tab_win.refresh()
+ self.refresh_tab_win()
def focus_tab_named(self, tab_name):
for tab in self.tabs:
@@ -558,7 +562,7 @@ class Core(object):
logger.log_message(jid.bare, remote_nick, body)
if self.current_tab() is not conversation:
conversation.set_color_state(theme.COLOR_TAB_PRIVATE)
- self.current_tab().tab_win.refresh()
+ self.refresh_tab_win()
else:
self.refresh_window()
@@ -1434,5 +1438,4 @@ class Core(object):
def doupdate(self):
if not self.running:
return
- self.current_tab().just_before_refresh()
curses.doupdate()