diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 09:16:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 09:16:20 +0000 |
commit | 9a4c1658fa12e463e9fc6c5720007c03e70c23d9 (patch) | |
tree | 87178c5463e34efb0b3847e0559011ec7d49d8e2 /extensions/45/vertical-workspaces/lib/appFavorites.js | |
parent | Initial commit. (diff) | |
download | gnome-shell-extensions-extra-9a4c1658fa12e463e9fc6c5720007c03e70c23d9.tar.xz gnome-shell-extensions-extra-9a4c1658fa12e463e9fc6c5720007c03e70c23d9.zip |
Adding upstream version 20231210.upstream/20231210
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'extensions/45/vertical-workspaces/lib/appFavorites.js')
-rw-r--r-- | extensions/45/vertical-workspaces/lib/appFavorites.js | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/extensions/45/vertical-workspaces/lib/appFavorites.js b/extensions/45/vertical-workspaces/lib/appFavorites.js new file mode 100644 index 0000000..94f67e2 --- /dev/null +++ b/extensions/45/vertical-workspaces/lib/appFavorites.js @@ -0,0 +1,79 @@ +/** + * V-Shell (Vertical Workspaces) + * appFavorites.js + * + * @author GdH <G-dH@github.com> + * @copyright 2022 - 2023 + * @license GPL-3.0 + * + */ + +'use strict'; + +import * as AppFavorites from 'resource:///org/gnome/shell/ui/appFavorites.js'; + +let Me; +let opt; + +export const AppFavoritesModule = class { + constructor(me) { + Me = me; + opt = Me.opt; + + this._firstActivation = true; + this.moduleEnabled = false; + this._overrides = null; + } + + cleanGlobals() { + Me = null; + opt = null; + } + + update(reset) { + this.moduleEnabled = opt.get('appFavoritesModule'); + + // if notifications are enabled no override is needed + reset = reset || !this.moduleEnabled || opt.SHOW_FAV_NOTIFICATION; + + // 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'); + } + } + + _activateModule() { + if (!this._overrides) + this._overrides = new Me.Util.Overrides(); + + // use actual instance instead of prototype + this._overrides.addOverride('AppFavorites', AppFavorites.getAppFavorites(), AppFavoritesCommon); + + console.debug(' AppFavoritesModule - Activated'); + } + + _disableModule() { + if (this._overrides) + this._overrides.removeAll(); + this._overrides = null; + + console.debug(' AppFavoritesModule - Deactivated'); + } +}; + +const AppFavoritesCommon = { + addFavoriteAtPos(appId, pos) { + this._addFavorite(appId, pos); + }, + + removeFavorite(appId) { + this._removeFavorite(appId); + }, +}; |