diff options
Diffstat (limited to 'browser.py')
-rw-r--r-- | browser.py | 27 |
1 files changed, 12 insertions, 15 deletions
@@ -286,20 +286,12 @@ class TabbedView(BrowserNotebook): def on_add_tab(self, gobject): self.add_tab() - def __tab_close_cb(self, label, tab_page): - if tab_page.props.browser == self.props.current_browser: - # Current browser was just closed. The next tab of it has - # to take the focus. - current_page_num = self.page_num(tab_page) - - if self.get_n_pages() - 1 == current_page_num: - # This tab was the last. Grab the left one. - page_to_focus = current_page_num - 1 - else: - # This tab was in the middle. Grab the right one. - page_to_focus = current_page_num + 1 - nth_page = self.get_nth_page(page_to_focus) - nth_page.props.browser.grab_focus() + def close_tab(self, tab_page=None): + if self.get_n_pages() == 1: + return + + if tab_page is None: + tab_page = self.get_nth_page(self.get_current_page()) if isinstance(tab_page, PDFTabPage): if tab_page.props.browser.props.load_status < \ @@ -307,7 +299,12 @@ class TabbedView(BrowserNotebook): tab_page.cancel_download() self.remove_page(self.page_num(tab_page)) - tab_page.destroy() + + current_page = self.get_nth_page(self.get_current_page()) + current_page.props.browser.grab_focus() + + def __tab_close_cb(self, label, tab_page): + self.close_tab(tab_page) def _update_tab_sizes(self): """Update tab widths based in the amount of tabs.""" |