Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManuel Kaufmann <humitos@gmail.com>2012-09-10 20:52:45 (GMT)
committer Manuel QuiƱones <manuq@laptop.org>2012-09-25 14:41:06 (GMT)
commita07d27a0356f312602c15bbb55cfad553a614118 (patch)
treeb68e99167d7d2878aabe3391b63b86eacad6c05d
parent41968d61a320632cabc0dd7ad2805c9f6fedb54c (diff)
Busy indication SL #851
Show WATCH Cursor when the page is loading and LEFT_PTR when the load finishes. This changes take in consideration the tab that the user is watching, so the cursor refers to the state of the current browser / tab. Signed-off-by: Manuel Kaufmann <humitos@gmail.com> Acked-by: Manuel QuiƱones <manuq@laptop.org>
-rw-r--r--browser.py21
-rw-r--r--webactivity.py13
2 files changed, 34 insertions, 0 deletions
diff --git a/browser.py b/browser.py
index de546f2..0d94649 100644
--- a/browser.py
+++ b/browser.py
@@ -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)