2016-11-03 2 views
2

Когда я пытаюсь добавить пункты меню в WebView с этим кодом:Как добавить пункты меню в WebKitContextMenu (javascript, gjs)?

my_webview.connect('context-menu', Lang.bind(this, function(webview, c_menu, event, hit_test){ 
     var action = new Gtk.Action({name:"some_name", label:"Some Label"}); 
     action.connect('activate', Lang.bind(this, function(){ 
      print("Your Menu Item !"); 
     })) 

     var m_item = new WebKit.ContextMenuItem(action); 
     c_menu.append(m_item); 
     m_item.show(); 
     return false; 
    })); 

приложения выход с ошибкой «ошибкой сегментации (ядро сбрасывали)» Что правильный способ добавить Пункт в меню в контекстном меню WebView?

ответ

2

Небольшая коррекция:

var m_item = WebKit.ContextMenuItem.new(action); 

Это сбивает с толку, мягко говоря, это потому, что WebKit.ContextMenuItem имеет пользовательский конструктор, а не обычный GObject конструктор, который будет вызываться с new WebKit.ContextMenuItem. Ошибка сегментации связана с удушением WebKit, когда элемент контекстного меню не получает действие; однако было бы хорошо, если бы GJS по крайней мере предупредил вас, что здесь происходит.

Я открыл отчет об ошибке для GJS here.

Смежные вопросы