Construct FreonItem through GObject.registerClass

GNOME/gjs@72062b5e03 ("object: Throw if constructing an unregistered
object inheriting from GObject") started to enforce proper GObject
inheritance through registerClass:

> When a class inherits from a GObject class, it must be always registered
> using GObject.registerClass, however gjs was accepting this silently [...]

Closes: #146 ("Broken on 3.34")
See also: [GNOME/gjs/doc/Mapping.md]

[GNOME/gjs/doc/Mapping.md]: 57ba268072/doc/Mapping.md
This commit is contained in:
Jonas Malaco
2019-09-26 16:58:34 -03:00
parent 4def20a227
commit b821805f2a

View File

@@ -1,10 +1,11 @@
const St = imports.gi.St;
const GObject = imports.gi.GObject;
const PopupMenu = imports.ui.popupMenu;
const St = imports.gi.St;
var FreonItem = class extends PopupMenu.PopupBaseMenuItem {
var FreonItem = GObject.registerClass(class FreonItem extends PopupMenu.PopupBaseMenuItem {
constructor(gIcon, key, label, value, displayName) {
super();
_init(gIcon, key, label, value, displayName) {
super._init();
this._main = false;
this._key = key;
this._gIcon = gIcon;
@@ -43,4 +44,4 @@ var FreonItem = class extends PopupMenu.PopupBaseMenuItem {
set value(value) {
this._valueLabel.text = value;
}
};
});