diff options
-rw-r--r-- | browser.py | 21 | ||||
-rw-r--r-- | webactivity.py | 13 |
2 files changed, 34 insertions, 0 deletions
@@ -188,10 +188,28 @@ class TabbedView(BrowserNotebook): self.set_current_page(next_index) tab_page.setup(url) + def __load_status_changed_cb(self, widget, param): + """Do not change the cursor if the load-status changed is not + on the current browser. + + """ + if self.props.current_browser != widget: + return + + status = widget.get_load_status() + if status in (WebKit.LoadStatus.PROVISIONAL, + WebKit.LoadStatus.COMMITTED, + WebKit.LoadStatus.FIRST_VISUALLY_NON_EMPTY_LAYOUT): + self.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.WATCH)) + elif status in (WebKit.LoadStatus.FAILED, + WebKit.LoadStatus.FINISHED): + self.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.LEFT_PTR)) + def add_tab(self, next_to_current=False): browser = Browser() browser.connect('new-tab', self.__new_tab_cb) browser.connect('open-pdf', self.__open_pdf_in_new_tab_cb) + browser.connect('notify::load-status', self.__load_status_changed_cb) if next_to_current: self._insert_tab_next(browser) @@ -318,6 +336,8 @@ class TabbedView(BrowserNotebook): browser = Browser() browser.connect('new-tab', self.__new_tab_cb) browser.connect('open-pdf', self.__open_pdf_in_new_tab_cb) + browser.connect('notify::load-status', + self.__load_status_changed_cb) self._append_tab(browser) browser.set_history(tab_history) @@ -404,6 +424,7 @@ class TabLabel(Gtk.HBox): def __load_status_changed_cb(self, widget, param): status = widget.get_load_status() + if status == WebKit.LoadStatus.FAILED: self._label.set_text(self._title) elif WebKit.LoadStatus.PROVISIONAL <= status \ diff --git a/webactivity.py b/webactivity.py index cdd556f..75b857b 100644 --- a/webactivity.py +++ b/webactivity.py @@ -169,6 +169,7 @@ class WebActivity(activity.Activity): self._force_close = False self._tabbed_view = TabbedView() self._tabbed_view.connect('focus-url-entry', self._on_focus_url_entry) + self._tabbed_view.connect('switch-page', self.__switch_page_cb) self._tray = HTray() self.set_tray(self._tray, Gtk.PositionType.BOTTOM) @@ -626,6 +627,18 @@ class WebActivity(activity.Activity): downloadmanager.remove_all_downloads() self.close() + def __switch_page_cb(self, tabbed_view, page, page_num): + browser = page._browser + status = browser.get_load_status() + + if status in (WebKit.LoadStatus.COMMITTED, + WebKit.LoadStatus.FIRST_VISUALLY_NON_EMPTY_LAYOUT): + self.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.WATCH)) + elif status in (WebKit.LoadStatus.PROVISIONAL, + WebKit.LoadStatus.FAILED, + WebKit.LoadStatus.FINISHED): + self.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.LEFT_PTR)) + def get_document_path(self, async_cb, async_err_cb): browser = self._tabbed_view.props.current_browser browser.get_source(async_cb, async_err_cb) |