如何滚动webkit2gtk
widget?
In webkitgtk
(aka. webkit1
)你包裹你的WebView
in a ScrolledWindow
,因此可以使用其vadjustment
财产。
For wekit2gtk
,这个调用WebView
刚刚返回None
,而且我看不到其他可以调用的方法。
作为解释,我想添加触摸支持webkit2
。 我有hacked我的方法是在上面添加一个透明层WebView
小部件1,但现在我正在检测触摸,但我似乎无法使用它们。
1 今天发布的版本消除了对顶层的需求。尽管如此,我还是有触动,但我却无能为力。
WebKit2 中的进程分离有一些优点,但也让很多事情变得更加复杂。我相信滚动就是其中之一:它发生在 Web 进程中,因为滚动条现在由 webkit 处理,而不是 Gtk 小部件。对于触摸处理来说也是如此:它部分是在网络进程中完成的。卡洛斯·加西亚·坎波斯写过一篇博客文章 http://blogs.igalia.com/carlosgc/2013/09/10/webkit2gtk-web-process-extensions/关于使用 WebKitWebExtension 来帮助解决这个问题。请注意,该设计对您的代码也有很多影响:部分代码将在完全不同的进程中运行。
答案的其余部分尚未经过测试,请将此更像是一个有根据的猜测:
我相信控制滚动的方法是通过DOM API http://webkitgtk.org/reference/webkitdomgtk/unstable/, 进一步来说DOMDOMWindow.scroll*
功能。复杂的部分是获取对DOMDOMWindow
-- 你需要实现一个WebExtension
它将在 Web 进程中运行,并允许您在以下情况时收到通知WebPage
被建造。这WebPage.get_dom_document()
打电话给你一个DOMDocument
and DOMDocument.get_default_view()
然后应该给你DOMDOMWindow
你需要。
对于 DOM API 文档,Mozilla https://developer.mozilla.org/en-US/docs/DOM/DOM_Reference可能是比斯巴达 WebKit-GTK-DOM 文档更好的参考。
如果我正在做你想做的事情,我的第一站将是 Freenode 上的 #webkitgtk+ IRC 频道,以检查上述内容是否真的是做你想做的事情的明智方法......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)