Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/browser.py
diff options
context:
space:
mode:
Diffstat (limited to 'browser.py')
-rw-r--r--browser.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/browser.py b/browser.py
index c5165db..8dd8a79 100644
--- a/browser.py
+++ b/browser.py
@@ -291,6 +291,8 @@ class TabPage(Gtk.Overlay):
GObject.GObject.__init__(self)
self._browser = browser
+ self._showing_load_status = False
+ self._requested_uri = None
link_info = Gtk.Label()
link_info.set_halign(Gtk.Align.START)
@@ -307,6 +309,10 @@ class TabPage(Gtk.Overlay):
browser.connect('hovering-over-link', self.__hovering_over_link_cb,
link_info)
+ browser.connect('notify::load-status', self.__load_status_cb,
+ link_info)
+ browser.connect('resource-request-starting',
+ self.__resource_request_starting_cb)
def _get_browser(self):
return self._browser
@@ -315,12 +321,34 @@ class TabPage(Gtk.Overlay):
getter=_get_browser)
def __hovering_over_link_cb(self, webview, title, uri, link_info):
+ if self._showing_load_status:
+ return
+
if uri is None:
link_info.hide()
else:
link_info.set_text(uri)
link_info.show()
+ def __load_status_cb(self, webview, param, link_info):
+ status = webview.get_load_status()
+ if status <= WebKit.LoadStatus.COMMITTED:
+ if self._requested_uri is None:
+ link_info.set_text(_("Loading..."))
+ else:
+ link_info.set_text(_("Loading %s...") % self._requested_uri)
+ self._showing_load_status = True
+ link_info.show()
+ else:
+ self._showing_load_status = False
+ self._requested_uri = None
+ link_info.hide()
+
+ def __resource_request_starting_cb(self, webview, webframe, webresource,
+ request, response):
+ """Set the request uri to be shown in the label overlay."""
+ self._requested_uri = request.get_uri()
+
class TabLabel(Gtk.HBox):
__gtype_name__ = 'TabLabel'