Add support for creating related WebViews

This commit is contained in:
Fierelier 2023-03-02 23:17:58 +01:00
parent 3a1832923d
commit da063b736c
4 changed files with 13 additions and 10 deletions

View File

@ -8,9 +8,11 @@ gi.require_version("Gtk","3.0")
gi.require_version("WebKit2","4.0")
from gi.repository import Gtk,WebKit2
def createWebView(*args,**kwargs):
webView = WebKit2.WebView.new()
return webView
def createWebView(*args,relatedWebView = None,**kwargs):
if relatedWebView != None:
return WebKit2.WebView.new_with_related_view(relatedWebView)
else:
return WebKit2.WebView.new()
def init():
global event

View File

@ -25,8 +25,7 @@ def onClose(obj):
if len(browser.windows) == 0:
Gtk.main_quit()
def addWebView(window,index = -1):
webView = browser.createWebView()
def addWebView(window,webView,index = -1):
if index == -1:
window.cWebViews.append(webView)
else:
@ -34,7 +33,6 @@ def addWebView(window,index = -1):
window.cMain.add(webView)
browser.event.trigger("webview:created",webView)
return webView
def create(url = sys.argv[1],webViews = None):
self = mfp.Bunch()

View File

@ -5,7 +5,9 @@ from gi.repository import Gtk,WebKit2
browser = mfp.require("browser")
contentManager = WebKit2.UserContentManager.new()
def f(*args,**kwargs):
webView = WebKit2.WebView.new_with_user_content_manager(contentManager)
return webView
def f(*args,relatedWebView = None,**kwargs):
if relatedWebView != None:
return WebKit2.WebView.new_with_related_view(relatedWebView)
else:
return WebKit2.WebView.new_with_user_content_manager(contentManager)
browser.createWebView = f

View File

@ -31,7 +31,8 @@ def doGo(button):
destroyedViews.append(webView) # not keeping a reference makes gtk sad.. i should probably report this.
if len(destroyedViews) > 10: destroyedViews.pop(0)
webView.destroy()
webView = browserWindow.addWebView(mainWindow,webViewIndex)
webView = browser.createWebView()
browserWindow.addWebView(mainWindow,webView,webViewIndex)
browserWindow.onResize(mainWindow)
mainWindow.show_all()