Окно Gtk 3 "зависает" при использовании WebKit2 (Vala)
Совсем недавно я играл с Vala и Gtk+3.0 и решил создать действительно простой веб-браузер как часть одного из моих приложений, чтобы показать одну из моих веб-страниц, которая использует Google Maps API для отображения некоторых маркеров, Я создал класс, который выглядит так:
using Gtk;
using WebKit;
public class WebBrowser : Window {
private string URL = "";
private WebView view;
// Constructor
public WebBrowser () {
this.view = new WebView();
var settings = this.view.get_settings();
settings.enable_plugins = true;
settings.enable_javascript = true;
this.add(view);
}
public void visit (string url) {
this.URL = url;
this.view.load_uri(this.URL);
}
}
В флагах компиляции я использовал
--pkg gtk+-3.0 --pkg webkit2gtk-4.0
Класс используется следующим образом (здесь будут использоваться случайные данные):
var browser = new WebBrowser();
browser.set_title ("Custom window title!");
browser.default_width = 1200;
browser.default_height = 800;
browser.visit ("http://acid3.acidtests.org/");
browser.show_all ();
и это работает. Он набрал 100/100 на тесте. Единственная проблема в том, что я не могу использовать реальный объект WebKit. Когда я изменяю размер окна, WebKit ведет себя нормально и корректно изменяет размер веб-страницы, но я не могу ни закрыть окно, ни взаимодействовать с веб-страницей. Я мог бы обработать некоторые сигналы и закрыть окно вручную, но WebKit все еще выглядит "замороженным". Есть ли способ включить управление мышью над объектом или это просто ошибка? Сначала я подумал, что это связано с тем, что я использую gtk+-3.0 и что webkit2gtk-4.0 может быть предназначен для некоторых более новых версий gtk, но где-то я читал, что webkit2gtk-3.0 был переименован в webkit2gtk-4.0 и действительно, мое приложение не скомпилируется, если я использую старую версию WebKit2.
1 ответ
Какую версию WebKitGTK вы используете? Если 2.16, то вы, вероятно, сталкиваетесь с этой ошибкой: https://bugs.webkit.org/show_bug.cgi?id=170450 Исправление для этого будет выпущено в 2.16.2, но в Fedora уже есть исправление, добавленное к версии 2.16.1-2 их пакета.