From 7db9528aca70227944c79a5dcbd509e9a4a62c45 Mon Sep 17 00:00:00 2001 From: "Marvin A. Ruder" Date: Wed, 30 Oct 2024 19:56:01 +0100 Subject: [PATCH 1/3] fix(macOS): Fix visual glitch when switching between full-screen apps * Check whether window is on active space before clamping Fixes #2527 --- macos/Sources/Features/Terminal/BaseTerminalController.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/macos/Sources/Features/Terminal/BaseTerminalController.swift b/macos/Sources/Features/Terminal/BaseTerminalController.swift index 432345627..071b7626b 100644 --- a/macos/Sources/Features/Terminal/BaseTerminalController.swift +++ b/macos/Sources/Features/Terminal/BaseTerminalController.swift @@ -152,6 +152,7 @@ class BaseTerminalController: NSWindowController, // screen then we clamp it back to within the screen. guard let window else { return } guard window.isVisible else { return } + guard window.isOnActiveSpace else { return } guard let screen = window.screen else { return } let visibleFrame = screen.visibleFrame From b454f90a1a51bdb1434582fc62be8644458fd41b Mon Sep 17 00:00:00 2001 From: "Marvin A. Ruder" Date: Wed, 30 Oct 2024 21:42:25 +0100 Subject: [PATCH 2/3] Replace check * Check whether window is fullscreen before clamping --- macos/Sources/Features/Terminal/BaseTerminalController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macos/Sources/Features/Terminal/BaseTerminalController.swift b/macos/Sources/Features/Terminal/BaseTerminalController.swift index 071b7626b..03bc40a1f 100644 --- a/macos/Sources/Features/Terminal/BaseTerminalController.swift +++ b/macos/Sources/Features/Terminal/BaseTerminalController.swift @@ -152,7 +152,7 @@ class BaseTerminalController: NSWindowController, // screen then we clamp it back to within the screen. guard let window else { return } guard window.isVisible else { return } - guard window.isOnActiveSpace else { return } + guard !window.styleMask.contains(.fullScreen) else { return } guard let screen = window.screen else { return } let visibleFrame = screen.visibleFrame From 756755c052f708290eed1322b43afe67f84d86f0 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Wed, 30 Oct 2024 16:45:52 -0400 Subject: [PATCH 3/3] comment --- .../Sources/Features/Terminal/BaseTerminalController.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/macos/Sources/Features/Terminal/BaseTerminalController.swift b/macos/Sources/Features/Terminal/BaseTerminalController.swift index 03bc40a1f..8acda4ed1 100644 --- a/macos/Sources/Features/Terminal/BaseTerminalController.swift +++ b/macos/Sources/Features/Terminal/BaseTerminalController.swift @@ -152,9 +152,12 @@ class BaseTerminalController: NSWindowController, // screen then we clamp it back to within the screen. guard let window else { return } guard window.isVisible else { return } - guard !window.styleMask.contains(.fullScreen) else { return } - guard let screen = window.screen else { return } + // We ignore fullscreen windows because macOS automatically resizes + // those back to the fullscreen bounds. + guard !window.styleMask.contains(.fullScreen) else { return } + + guard let screen = window.screen else { return } let visibleFrame = screen.visibleFrame var newFrame = window.frame