Open preview links in the browser

github/fork/yochananmarqos/patch-1
Gonçalo Silva 2019-06-22 00:38:28 +01:00
parent efb1a02f30
commit d9014b12e7
1 changed files with 14 additions and 4 deletions

View File

@ -1,3 +1,5 @@
import webbrowser
import gi
gi.require_version('WebKit2', '4.0')
@ -54,9 +56,10 @@ if (canScroll && isRendered) {{
def __init__(self):
super().__init__()
self.connect("size-allocate", self.on_size_allocate)
self.connect("decide-policy", self.on_decide_policy)
self.connect("load-changed", self.on_load_changed)
self.connect("load-failed", self.on_load_failed)
self.connect("size-allocate", self.on_size_allocate)
self.connect("destroy", self.on_destroy)
self.scroll_scale = -1
@ -80,6 +83,16 @@ if (canScroll && isRendered) {{
self.scroll_scale = scale
self.state_loop()
def on_size_allocate(self, *_):
self.set_scroll_scale(self.scroll_scale)
def on_decide_policy(self, _web_view, decision, decision_type):
if decision_type == WebKit2.PolicyDecisionType.NAVIGATION_ACTION and \
decision.get_navigation_action().is_user_gesture():
webbrowser.open(decision.get_request().get_uri())
return True
return False
def on_load_changed(self, _web_view, event):
self.state_loaded = event >= WebKit2.LoadEvent.COMMITTED and not self.state_load_failed
self.state_load_failed = False
@ -92,9 +105,6 @@ if (canScroll && isRendered) {{
self.state_load_failed = True
self.state_loop()
def on_size_allocate(self, *_):
self.set_scroll_scale(self.scroll_scale)
def on_destroy(self, _widget):
self.state_loaded = False
self.state_loop()