extensions: Stop monkey-patching signal methods

gnome-shell added an EventEmitter class that can be used as base
for any non-GObject class that needs to emit signals.

Use that instead of the old monkey-patching.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/240>
This commit is contained in:
Florian Müllner
2022-08-20 18:48:25 +02:00
parent 4b7055d0da
commit 9f88e98d1b
2 changed files with 11 additions and 8 deletions
+4 -3
View File
@@ -4,7 +4,7 @@
const {
Atk, Clutter, Gio, GLib, GMenu, GObject, Gtk, Meta, Shell, St,
} = imports.gi;
const Signals = imports.signals;
const {EventEmitter} = imports.misc.signals;
const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
@@ -239,8 +239,10 @@ class ApplicationsMenu extends PopupMenu.PopupMenu {
}
}
class DesktopTarget {
class DesktopTarget extends EventEmitter {
constructor() {
super();
this._desktop = null;
this._desktopDestroyedId = 0;
@@ -357,7 +359,6 @@ class DesktopTarget {
return true;
}
}
Signals.addSignalMethods(DesktopTarget.prototype);
class ApplicationsButton extends PanelMenu.Button {
static {
+7 -5
View File
@@ -2,7 +2,7 @@
/* exported PlacesManager */
const {Gio, GLib, Shell} = imports.gi;
const Signals = imports.signals;
const {EventEmitter} = imports.misc.signals;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
@@ -23,8 +23,10 @@ const Hostname1Iface = '<node> \
</node>';
const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface);
class PlaceInfo {
class PlaceInfo extends EventEmitter {
constructor(...params) {
super();
this._init(...params);
}
@@ -119,7 +121,6 @@ class PlaceInfo {
}
}
}
Signals.addSignalMethods(PlaceInfo.prototype);
class RootInfo extends PlaceInfo {
_init() {
@@ -247,8 +248,10 @@ const DEFAULT_DIRECTORIES = [
GLib.UserDirectory.DIRECTORY_VIDEOS,
];
var PlacesManager = class {
var PlacesManager = class extends EventEmitter {
constructor() {
super();
this._places = {
special: [],
devices: [],
@@ -544,4 +547,3 @@ var PlacesManager = class {
return this._places[kind];
}
};
Signals.addSignalMethods(PlacesManager.prototype);