From c6cb9713466d7fc9fb81cd2c6102bd97e89089b5 Mon Sep 17 00:00:00 2001 From: Manuel QuiƱones Date: Mon, 05 Dec 2011 21:31:28 +0000 Subject: Fix bugs adding conditionals for BrowserNotebook with no pages Signed-off-by: Manuel QuiƱones --- diff --git a/browser.py b/browser.py index 2fafc5b..2c3b4f8 100644 --- a/browser.py +++ b/browser.py @@ -181,8 +181,9 @@ class TabbedView(BrowserNotebook): self._update_tab_sizes() def __page_removed_cb(self, notebook, child, pagenum): - self._update_closing_buttons() - self._update_tab_sizes() + if self.get_n_pages(): + self._update_closing_buttons() + self._update_tab_sizes() def __new_tab_cb(self, browser, url): new_browser = self.add_tab(next_to_current=True) @@ -263,9 +264,7 @@ class TabbedView(BrowserNotebook): """Prevent closing the last tab.""" first_page = self.get_nth_page(0) first_label = self.get_tab_label(first_page) - if self.get_n_pages() == 0: - return - elif self.get_n_pages() == 1: + if self.get_n_pages() == 1: first_label.hide_close_button() else: first_label.show_close_button() @@ -281,7 +280,10 @@ class TabbedView(BrowserNotebook): browser.load_uri(default_page) def _get_current_browser(self): - return self.get_nth_page(self.get_current_page()).get_child() + if self.get_n_pages(): + return self.get_nth_page(self.get_current_page()).get_child() + else: + return None current_browser = GObject.property(type=object, getter=_get_current_browser) diff --git a/webtoolbar.py b/webtoolbar.py index a61d758..869da8b 100644 --- a/webtoolbar.py +++ b/webtoolbar.py @@ -296,13 +296,14 @@ class PrimaryToolbar(ToolbarBase): self._title_changed_hid = None self._uri_changed_hid = None - GObject.idle_add(lambda: - self._connect_to_browser(tabbed_view.props.current_browser)) + if tabbed_view.get_n_pages(): + self._connect_to_browser(tabbed_view.props.current_browser) tabbed_view.connect_after('switch-page', self.__switch_page_cb) def __switch_page_cb(self, tabbed_view, page, page_num): - self._connect_to_browser(tabbed_view.props.current_browser) + if tabbed_view.get_n_pages(): + self._connect_to_browser(tabbed_view.props.current_browser) def _connect_to_browser(self, browser): diff --git a/widgets.py b/widgets.py index 608dbb6..3cfdf1e 100644 --- a/widgets.py +++ b/widgets.py @@ -69,11 +69,11 @@ class BrowserNotebook(Gtk.Notebook): empty_page.show() def on_add_tab(self, obj): - raise NotImplementedError, "implement this in the subclass" + raise NotImplementedError("implement this in the subclass") def __on_switch_page(self, notebook, page, page_num): """Don't switch to the extra tab at the end.""" - if page_num == Gtk.Notebook.get_n_pages(self) - 1: + if page_num > 0 and page_num == Gtk.Notebook.get_n_pages(self) - 1: self.handler_block(self._switch_handler) self.set_current_page(-1) self.handler_unblock(self._switch_handler) -- cgit v0.9.1