summaryrefslogtreecommitdiff
path: root/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/extension.js
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/extension.js')
-rw-r--r--raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/extension.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/extension.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/extension.js
index fbfb54c..b94ac65 100644
--- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/extension.js
+++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/extension.js
@@ -6,6 +6,7 @@ import * as Config from 'resource:///org/gnome/shell/misc/config.js';
import { Extension } from 'resource:///org/gnome/shell/extensions/extension.js';
import { update_from_old_settings } from './conveniences/settings_updater.js';
+import { import_in_shell_only} from './conveniences/utils.js';
import { PipelinesManager } from './conveniences/pipelines_manager.js';
import { EffectsManager } from './conveniences/effects_manager.js';
import { Connections } from './conveniences/connections.js';
@@ -22,6 +23,8 @@ import { CoverflowAltTabBlur } from './components/coverflow_alt_tab.js';
import { ApplicationsBlur } from './components/applications.js';
import { ScreenshotBlur } from './components/screenshot.js';
+const BlurModule = await import_in_shell_only('gi://Blur');
+
/// The main extension class, created when the GNOME Shell is loaded.
export default class BlurMyShell extends Extension {
@@ -80,6 +83,9 @@ export default class BlurMyShell extends Extension {
if (this._settings.lockscreen.BLUR && !this._lockscreen_blur.enabled)
this._lockscreen_blur.enable();
+ // update whether or not the external rounded corners library was found
+ this._update_rounded_blur_found();
+
// ensure we take the correct action for the current session mode
this._user_session_mode_enabled = false;
this._on_session_mode_changed(Main.sessionMode);
@@ -241,6 +247,19 @@ export default class BlurMyShell extends Extension {
}
}
+ /// Verify whether or not the gi://Blur library was found, in order to inform
+ /// the preferences and instruct the user to install it to have native rounded
+ /// corners in dynamic blur.
+ _update_rounded_blur_found() {
+ if (BlurModule === null) {
+ this._settings.ROUNDED_BLUR_FOUND = false;
+ this._log("using original implementation for the native blur effect")
+ } else {
+ this._settings.ROUNDED_BLUR_FOUND = true;
+ this._log("using external library for the native blur effect")
+ }
+ }
+
/// Add or remove the clutter debug flag to disable clipped redraws.
/// This will entirely fix the blur effect, but should not be used except if
/// the user really needs it, as clipped redraws are a huge performance
@@ -488,6 +507,12 @@ export default class BlurMyShell extends Extension {
this._applications_blur.change_pipeline();
});
+ // rounded corners on maximized windows changed
+ this._settings.applications.CORNER_WHEN_MAXIMIZED_changed(() => {
+ if (this._settings.applications.BLUR)
+ this._applications_blur.update_all_corner_radii();
+ });
+
// application opacity changed
this._settings.applications.OPACITY_changed(() => {
if (this._settings.applications.BLUR)