Окно 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 их пакета.

Другие вопросы по тегам