summaryrefslogtreecommitdiff
path: root/poezio/core/core.py
diff options
context:
space:
mode:
Diffstat (limited to 'poezio/core/core.py')
-rw-r--r--poezio/core/core.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/poezio/core/core.py b/poezio/core/core.py
index fffb5fb0..eee580d5 100644
--- a/poezio/core/core.py
+++ b/poezio/core/core.py
@@ -98,6 +98,8 @@ class Core:
self.plugins_autoloaded = False
self.plugin_manager = PluginManager(self)
self.events = events.EventHandler()
+ self.events.add_event_handler('tab_change',
+ self.on_tab_change)
self.tabs = Tabs(self.events)
self.previous_tab_nb = 0
@@ -347,6 +349,12 @@ class Core:
self.add_configuration_handler("", self.on_any_config_change)
+ def on_tab_change(self, old_tab, new_tab):
+ """Whenever the current tab changes, change focus and refresh"""
+ old_tab.on_lose_focus()
+ new_tab.on_gain_focus()
+ self.refresh_window()
+
def on_any_config_change(self, option, value):
"""
Update the roster, in case a roster option changed.
@@ -1028,19 +1036,13 @@ class Core:
"""
rotate the rooms list to the right
"""
- self.tabs.current_tab.on_lose_focus()
self.tabs.next()
- self.tabs.current_tab.on_gain_focus()
- self.refresh_window()
def rotate_rooms_left(self, args=None):
"""
rotate the rooms list to the right
"""
- self.tabs.current_tab.on_lose_focus()
self.tabs.prev()
- self.tabs.current_tab.on_gain_focus()
- self.refresh_window()
def go_to_room_number(self):
"""