From ed7fe693b4e2a4354a7db58d03bc74f155f1ad71 Mon Sep 17 00:00:00 2001 From: mathieui Date: Tue, 9 Dec 2014 01:13:14 +0100 Subject: Fix #2802 (add a /closeall command, with a new plugin) --- src/core/core.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/core') diff --git a/src/core/core.py b/src/core/core.py index 79d19087..f6b973ec 100644 --- a/src/core/core.py +++ b/src/core/core.py @@ -1286,6 +1286,7 @@ class Core(object): """ Close the given tab. If None, close the current one """ + was_current = tab is None tab = tab or self.current_tab() if isinstance(tab, tabs.RosterInfoTab): return # The tab 0 should NEVER be closed @@ -1293,9 +1294,10 @@ class Core(object): del tab.commands # and make the object collectable tab.on_close() nb = tab.nb - if self.previous_tab_nb != nb: - self.current_tab_nb = self.previous_tab_nb - self.previous_tab_nb = 0 + if was_current: + if self.previous_tab_nb != nb: + self.current_tab_nb = self.previous_tab_nb + self.previous_tab_nb = 0 if config.get('create_gaps'): if nb >= len(self.tabs) - 1: self.tabs.remove(tab) @@ -1315,7 +1317,8 @@ class Core(object): self.current_tab_nb = len(self.tabs) - 1 while not self.tabs[self.current_tab_nb]: self.current_tab_nb -= 1 - self.current_tab().on_gain_focus() + if was_current: + self.current_tab().on_gain_focus() self.refresh_window() import gc gc.collect() -- cgit v1.2.3