From dd9dc33443444d85ca88344448a49a0fbd222141 Mon Sep 17 00:00:00 2001 From: Kai Azim Date: Fri, 28 Jun 2024 10:17:54 -0600 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20Fix=20window=20snapping=20on=20m?= =?UTF-8?q?ulti-display=20setups?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Loop/Managers/WindowDragManager.swift | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Loop/Managers/WindowDragManager.swift b/Loop/Managers/WindowDragManager.swift index b125d6ef..a73f4657 100644 --- a/Loop/Managers/WindowDragManager.swift +++ b/Loop/Managers/WindowDragManager.swift @@ -66,11 +66,7 @@ class WindowDragManager { } private func setCurrentDraggingWindow() { - guard let screen = NSScreen.screenWithMouse else { - return - } - - let mousePosition = NSEvent.mouseLocation.flipY(screen: screen) + let mousePosition = NSEvent.mouseLocation.flipY(screen: NSScreen.screens[0]) do { guard @@ -131,19 +127,23 @@ class WindowDragManager { guard let screen = NSScreen.screenWithMouse else { return } - let mousePosition = NSEvent.mouseLocation.flipY(maxY: screen.frame.maxY) - let screenFrame = screen.frame.flipY(maxY: screen.frame.maxY) + + let mainScreen = NSScreen.screens[0] + let mousePosition = NSEvent.mouseLocation.flipY(screen: mainScreen) + let screenFrame = screen.frame.flipY(screen: mainScreen) previewController.setScreen(to: screen) - let insets: CGFloat = 2 - let topInset = screen.menubarHeight / 2 + let inset: CGFloat = 2 + let topInset = max(screen.menubarHeight / 2, inset) var ignoredFrame = screenFrame - ignoredFrame.origin.x += insets - ignoredFrame.size.width -= insets * 2 + ignoredFrame.origin.x += inset + ignoredFrame.size.width -= inset * 2 ignoredFrame.origin.y += topInset - ignoredFrame.size.height -= insets + topInset + ignoredFrame.size.height -= inset + topInset + + print(ignoredFrame.minY, screenFrame.minY) let oldDirection = direction