diff --git a/src/extension.ts b/src/extension.ts index 503407f3..82317f41 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)); @@ -2964,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; } 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();