summaryrefslogtreecommitdiffstats
path: root/extensions/44/vertical-workspaces/lib/appFavorites.js
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/44/vertical-workspaces/lib/appFavorites.js')
-rw-r--r--extensions/44/vertical-workspaces/lib/appFavorites.js72
1 files changed, 45 insertions, 27 deletions
diff --git a/extensions/44/vertical-workspaces/lib/appFavorites.js b/extensions/44/vertical-workspaces/lib/appFavorites.js
index 50ebce9..3efb68c 100644
--- a/extensions/44/vertical-workspaces/lib/appFavorites.js
+++ b/extensions/44/vertical-workspaces/lib/appFavorites.js
@@ -10,45 +10,63 @@
'use strict';
-const { Shell } = imports.gi;
const AppFavorites = imports.ui.appFavorites;
-const Main = imports.ui.main;
-
-const Me = imports.misc.extensionUtils.getCurrentExtension();
-const _Util = Me.imports.lib.util;
+let Me;
let opt;
-let _overrides;
-let _firstRun = true;
-function update(reset = false) {
- opt = Me.imports.lib.settings.opt;
- const moduleEnabled = opt.get('appFavoritesModule', true);
- reset = reset || !moduleEnabled;
+var AppFavoritesModule = class {
+ constructor(me) {
+ Me = me;
+ opt = Me.opt;
- // don't even touch this module if disabled
- if (_firstRun && reset)
- return;
+ this._firstActivation = true;
+ this.moduleEnabled = false;
+ this._overrides = null;
+ }
- _firstRun = false;
+ cleanGlobals() {
+ Me = null;
+ opt = null;
+ }
- if (_overrides)
- _overrides.removeAll();
+ update(reset) {
+ this.moduleEnabled = opt.get('appFavoritesModule');
+ // if notifications are enabled no override is needed
+ reset = reset || !this.moduleEnabled || opt.SHOW_FAV_NOTIFICATION;
- // if notifications are enabled no override is needed
- if (reset || opt.SHOW_FAV_NOTIFICATION) {
- _overrides = null;
- opt = null;
- return;
+ // don't touch original code if module disabled
+ if (reset && !this._firstActivation) {
+ this._disableModule();
+ } else if (!reset) {
+ this._firstActivation = false;
+ this._activateModule();
+ }
+ if (reset && this._firstActivation) {
+ this.moduleEnabled = false;
+ console.debug(' AppFavoritesModule - Keeping untouched');
+ }
}
- _overrides = new _Util.Overrides();
+ _activateModule() {
+ if (!this._overrides)
+ this._overrides = new Me.Util.Overrides();
+
+ // use actual instance instead of prototype
+ this._overrides.addOverride('AppFavorites', AppFavorites.getAppFavorites(), AppFavoritesCommon);
- // AppFavorites.AppFavorites is const, first access returns undefined
- const dummy = AppFavorites.AppFavorites;
- _overrides.addOverride('AppFavorites', AppFavorites.AppFavorites.prototype, AppFavoritesCommon);
-}
+ console.debug(' AppFavoritesModule - Activated');
+ }
+
+ _disableModule() {
+ if (this._overrides)
+ this._overrides.removeAll();
+ this._overrides = null;
+
+ console.debug(' AppFavoritesModule - Deactivated');
+ }
+};
const AppFavoritesCommon = {
addFavoriteAtPos(appId, pos) {