Compare commits

...

3 Commits

Author SHA1 Message Date
Fierelier 939d0cfb53 Add addon: favicon 2023-01-10 22:08:35 +01:00
Fierelier 8843478290 Handle recreated WebViews better 2023-01-10 20:30:03 +01:00
Fierelier b3fd4556ae Add webContext to browser 2023-01-10 20:17:52 +01:00
6 changed files with 39 additions and 5 deletions

View File

@ -8,8 +8,10 @@ gi.require_version("Gtk","3.0")
gi.require_version("WebKit2","4.0")
from gi.repository import Gtk,WebKit2
webContext = WebKit2.WebContext()
def createWebView(*args,**kwargs):
return WebKit2.WebView(*args,**kwargs)
return WebKit2.WebView.new_with_context(webContext,*args,**kwargs)
def init():
global event

View File

@ -1,5 +1,6 @@
userModules
title
favicon
contextMenu
contextMenuWindow
contextMenuGo

View File

@ -0,0 +1,26 @@
import gi
gi.require_version("Gtk","3.0")
from gi.repository import Gdk
import cairo
eventHandler = mfp.Bunch()
defaultIcon = cairo.ImageSurface.create_from_png(mfp.require("config").find(mfp.p("addon","favicon","default.png")))
defaultIcon = Gdk.pixbuf_get_from_surface(defaultIcon,0,0,defaultIcon.get_width(),defaultIcon.get_height())
def onFavicon(webView,_):
window = webView.get_toplevel()
favicon = webView.get_favicon()
if favicon == None:
window.set_icon(defaultIcon)
return
favicon = Gdk.pixbuf_get_from_surface(favicon,0,0,favicon.get_width(),favicon.get_height())
window.set_icon(favicon)
mfp.require("browser").webContext.set_favicon_database_directory(None)
def onWebviewCreated(webView):
onFavicon(webView,None)
webView.connect("notify::favicon",onFavicon)
eventHandler["webview:created"] = onWebviewCreated

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

View File

@ -1,15 +1,20 @@
eventHandler = mfp.Bunch()
browser = mfp.require("browser")
def onTitleChanged(obj,prop):
title = obj.get_title()
if title == "": title = obj.get_uri()
def onTitleChanged(obj,_):
window = obj.get_toplevel()
if len(window.cWebViews) > 1:
title = "Multiple pages"
window.set_title("Multiple pages")
return
title = obj.get_title()
if title == "": title = obj.get_uri()
if title == "" or title == None:
window.set_title(browser.name)
return
window.set_title(title + " - " + browser.name)
def onWebviewCreated(webView):
onTitleChanged(webView,None)
webView.connect("notify::title",onTitleChanged)
eventHandler["webview:created"] = onWebviewCreated