Когда я пытаюсь открыть GtkWindow из апплета Cinnamon, весь рабочий стол зависает.
В файле ~/.cinnamon/glass.log
ошибок нет.
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.main()
, после чего окно не отображается и рабочий стол зависает.
Кто-нибудь знает, как заставить его работать правильно?
Gtk.init
действительно нужен? И вообще, я думаю, у вас параметры поменялись местами, должно бытьGtk.init(0, null)
. - person rodrigo   schedule 16.03.2013Gtk.init(0, null)
делаетExpected type utf8 for Argument 'argv' but got type 'number' (nil)
, аGtk.init(null, 0)
хорошо работает в простом сценарии Gjs (за исключением апплетов корицы). Кроме того, кажется, что я могу удалитьGtk.init
из апплета корицы, не внося никаких изменений. - person Nicolas   schedule 16.03.2013