summaryrefslogtreecommitdiff
path: root/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js
diff options
context:
space:
mode:
authorNippy <nippy@rp1.hu>2026-06-01 18:57:29 +0200
committerNippy <nippy@rp1.hu>2026-06-01 18:57:29 +0200
commit2e5a7d93476c0819b5a23f5740e4c843eaedc73a (patch)
tree84279c63b84126eb8f6d9d94a42c44aabbe22336 /raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js
parente1f0fac166056bb106284be4a3fec0c558525927 (diff)
downloadRaveOS-PKGBUILD-2e5a7d93476c0819b5a23f5740e4c843eaedc73a.tar.gz
RaveOS-PKGBUILD-2e5a7d93476c0819b5a23f5740e4c843eaedc73a.zip
Raveos gnome update
Diffstat (limited to 'raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js')
-rw-r--r--raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js51
1 files changed, 46 insertions, 5 deletions
diff --git a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js
index e783046..5280b55 100644
--- a/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js
+++ b/raveos-gnome-theme/theme-data/extensions/installed/blur-my-shell@aunetx/components/applications.js
@@ -166,7 +166,7 @@ export const ApplicationsBlur = class ApplicationsBlur {
let window_actor = meta_window.get_compositor_private();
if (
- (!meta_window.get_workspace().active) || meta_window.minimized
+ (!meta_window.get_workspace().active) || meta_window.minimized
)
window_actor.hide();
});
@@ -385,10 +385,27 @@ export const ApplicationsBlur = class ApplicationsBlur {
// set the window actor's opacity
this.set_window_opacity(window_actor, this.settings.applications.OPACITY);
+ // update corner radius based on window state
+ this.update_corner_radius(meta_window);
+
// now set up the signals, for the window actor only: they are disconnected
// in `remove_blur`, whereas the signals for the meta window are disconnected
// only when the whole component is disabled
+ // listen for window state changes (maximized/fullscreen)
+ this.connections.connect(
+ meta_window, 'notify::maximized-horizontally',
+ _ => this.update_corner_radius(meta_window)
+ );
+ this.connections.connect(
+ meta_window, 'notify::maximized-vertically',
+ _ => this.update_corner_radius(meta_window)
+ );
+ this.connections.connect(
+ meta_window, 'notify::fullscreen',
+ _ => this.update_corner_radius(meta_window)
+ );
+
// update the window opacity when it changes, else we don't control it fully
this.connections.connect(
window_actor, 'notify::opacity',
@@ -472,6 +489,33 @@ export const ApplicationsBlur = class ApplicationsBlur {
);
}
+ /// Update the corner radius based on window state (0 for maximized/fullscreen)
+ /// if the preferences say so.
+ update_corner_radius(meta_window) {
+ const is_maximized = meta_window.maximized_horizontally || meta_window.maximized_vertically;
+ const is_fullscreen = meta_window.fullscreen;
+
+ let use_0_radius = !this.settings.applications.CORNER_WHEN_MAXIMIZED && (is_maximized || is_fullscreen);
+
+ if (this.settings.applications.STATIC_BLUR) {
+ meta_window.bg_manager?._bms_pipeline?.effects.forEach(effect => {
+ if (effect.constructor.name === "CornerEffect")
+ effect.straight_corners = use_0_radius;
+ })
+ } else {
+ if (meta_window.bg_manager?._bms_pipeline?.effect)
+ meta_window.bg_manager._bms_pipeline.effect.corner_radius = use_0_radius ?
+ 0 : this.settings.applications.CORNER_RADIUS;
+ }
+ }
+
+ /// Update all corners, to use when the setting has been changed.
+ update_all_corner_radii() {
+ this.meta_window_map.forEach(
+ (meta_window, _pid) => this.update_corner_radius(meta_window)
+ )
+ }
+
/// Set the opacity of the window actor that sits on top of the blur effect.
set_window_opacity(window_actor, opacity) {
window_actor?.get_children().forEach(child => {
@@ -503,10 +547,7 @@ export const ApplicationsBlur = class ApplicationsBlur {
this.mutter_gsettings
.get_strv('experimental-features')
.includes('scale-monitor-framebuffer');
- const is_wayland = gnome_shell_major_version >= 50 ||
- (typeof Meta.is_wayland_compositor === 'function'
- ? Meta.is_wayland_compositor()
- : global.display?.is_wayland_compositor?.() ?? true);
+ const is_wayland = gnome_shell_major_version >= 50 || Meta.is_wayland_compositor();
const monitor_index = meta_window.get_monitor();
// check if the window is using wayland, or xwayland/xorg for rendering
return !scale_monitor_framebuffer && is_wayland && meta_window.get_client_type() == 0