當我嘗試從肉桂小程序打開GtkWindow時,整個桌面會凍結。
~/.cinnamon/glass.log
文件中沒有錯誤。直到Gtk.main()
則沒有顯示窗口執行無法從肉桂小程序打開GtkWindow
const Gtk = imports.gi.Gtk;
function MyApplet(orientation)
{
this._init(orientation);
}
MyApplet.prototype =
{
__proto__: Applet.IconApplet.prototype,
_init: function(orientation)
{
Applet.IconApplet.prototype._init.call(this, orientation);
try {
this.set_applet_icon_name("dialog-question");
this.set_applet_tooltip("test");
}
catch (e) {
global.logError(e);
};
},
on_applet_clicked: function(event)
{
Gtk.init(null, 0);
let mwindow = new Gtk.Window ({type : Gtk.WindowType.TOPLEVEL});
mwindow.title = "Hello World!";
mwindow.connect ("destroy", function(){Gtk.main_quit()});
mwindow.show();
Gtk.main();
}
};
function main(metadata, orientation)
{
let myApplet = new MyApplet(orientation);
return myApplet;
}
的代碼和桌面獲得凍結。
任何人都知道如何使它正常工作?
我不知道溝通,但你確定調用'Gtk.init'是真的需要嗎?無論如何,我認爲你已經交換了參數,它應該是'Gtk.init(0,null)'。 – rodrigo 2013-03-15 23:25:45
根據文檔,看起來你是對的,但使用'Gtk.init(0,null)'使''參數'argv'的期望類型爲utf8,但在'Gtk'時獲得了類型'number'(nil)'。 init(null,0)'在簡單的Gjs腳本(肉桂小程序之外)中運行良好。另外,我似乎可以從肉桂applet中刪除'Gtk.init',而不做任何更改。 – Nicolas 2013-03-16 08:11:32