From 1ee93d5e09c1f4b165dc590abd3f472d3c93ee46 Mon Sep 17 00:00:00 2001 From: sasilanz Date: Wed, 31 Dec 2025 10:12:37 +0100 Subject: [PATCH 1/2] Fix compatibility with GNOME Shell 49 The GNOME 49 API changed unmaximize() to accept no parameters. This fixes JS warnings and restores Pop Shell functionality on GNOME 49 (Fedora 43). Fixes: unmaximize() calls in window.ts, extension.ts, tiling.ts --- src/extension.ts | 10 ++++------ src/tiling.ts | 2 +- src/window.ts | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index 503407f3..599e2b5f 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -909,10 +909,10 @@ export class Ext extends Ecs.System { ) { if (prev.rect().contains(win.rect())) { if (prev.is_maximized()) { - prev.meta.unmaximize(Meta.MaximizeFlags.BOTH); + prev.meta.unmaximize(); } } else if (prev.stack) { - prev.meta.unmaximize(Meta.MaximizeFlags.BOTH); + prev.meta.unmaximize(); this.auto_tiler.forest.stacks.get(prev.stack)?.restack(); } } @@ -1034,7 +1034,7 @@ export class Ext extends Ecs.System { compare.is_maximized() && win.entity[0] !== compare.entity[0] ) { - compare.meta.unmaximize(Meta.MaximizeFlags.BOTH); + compare.meta.unmaximize(); } } } @@ -1258,9 +1258,7 @@ export class Ext extends Ecs.System { if (this.auto_tiler) { if (this.is_floating(win)) { - win.meta.unmaximize(Meta.MaximizeFlags.HORIZONTAL); - win.meta.unmaximize(Meta.MaximizeFlags.VERTICAL); - win.meta.unmaximize(Meta.MaximizeFlags.BOTH); + win.meta.unmaximize(); } this.register(Events.window_move(this, win, rect)); diff --git a/src/tiling.ts b/src/tiling.ts index 8ea72562..b91c2f55 100644 --- a/src/tiling.ts +++ b/src/tiling.ts @@ -749,7 +749,7 @@ export class Tiler { this.window = win.entity; if (win.is_maximized()) { - win.meta.unmaximize(Meta.MaximizeFlags.BOTH); + win.meta.unmaximize(); } // Set overlay to match window diff --git a/src/window.ts b/src/window.ts index 2fbd2928..0adf2d5b 100644 --- a/src/window.ts +++ b/src/window.ts @@ -373,7 +373,7 @@ export class ShellWindow { if (actor) { if (this.is_maximized()) { - meta.unmaximize(Meta.MaximizeFlags.BOTH); + meta.unmaximize(); } actor.remove_all_transitions(); From c374508e5a9e8a26e20293ceb561e96fb1f465f3 Mon Sep 17 00:00:00 2001 From: Astrid Date: Fri, 16 Jan 2026 09:56:36 +0100 Subject: [PATCH 2/2] fix: resolve build errors and WindowSwitcherPopup settings crash in GNOME 49 - Make unmaximize() flags parameter optional in type definition to fix TypeScript compilation errors while maintaining backward compatibility - Use local Gio.Settings instance in WindowSwitcherPopup._getWindowList() instead of this._settings which is null in GNOME 49+ --- src/extension.ts | 4 +++- src/mod.d.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index 599e2b5f..82317f41 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -2962,7 +2962,9 @@ function _show_skip_taskbar_windows(ext: Ext) { WindowSwitcherPopup.prototype._getWindowList = function () { let workspace = null; - if (this._settings.get_boolean('current-workspace-only')) { + // Use local settings instance since this._settings may be null in GNOME 49+ + let settings = new Gio.Settings({ schema_id: 'org.gnome.shell.app-switcher' }); + if (settings.get_boolean('current-workspace-only')) { let workspaceManager = global.workspace_manager; workspace = workspaceManager.get_active_workspace(); } diff --git a/src/mod.d.ts b/src/mod.d.ts index e1ac012f..652866c2 100644 --- a/src/mod.d.ts +++ b/src/mod.d.ts @@ -311,7 +311,7 @@ declare namespace Meta { move_resize_frame(user_op: boolean, x: number, y: number, w: number, h: number): boolean; raise(): void; skip_taskbar: boolean; - unmaximize(flags: any): void; + unmaximize(flags?: any): void; unminimize(): void; }