Lorsque j'essaie d'ouvrir une GtkWindow à partir d'une applet de cannelle, le bureau entier se fige. Aucune erreur dans le fichier ~/.cinnamon/glass.log
.Impossible d'ouvrir une GtkWindow à partir d'une applet de cannelle
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;
}
Le code est exécuté jusqu'à Gtk.main()
alors aucune fenêtre est affichée et le bureau se congelés.
Quelqu'un sait comment le faire fonctionner correctement?
Je ne sais pas, mais êtes-vous sûr l'appel à 'Gtk.init' est vraiment nécessaire? Et de toute façon je pense que vous avez les paramètres échangés, il devrait être 'Gtk.init (0, null)'. – rodrigo
Selon la documentation, il semble que vous ayez raison, mais l'utilisation de 'Gtk.init (0, null)' rend le type attendu utf8 pour Argument 'argv' mais a obtenu le type 'number' (nil) 'while' Gtk. init (null, 0) 'fonctionne bien dans un simple script Gjs (en dehors des applets de cannelle). En outre, il semble que je peux supprimer 'Gtk.init' de l'applet de cannelle sans que cela ne change. – Nicolas