From aee19c90d687c83f84fa3e1ca9a5033256201246 Mon Sep 17 00:00:00 2001 From: Hariharan Mudaliar Date: Sun, 29 Mar 2026 16:06:23 +0530 Subject: [PATCH] BugFix: remove sharp corners --- .../LocalSendDevicePickerWindowManager.swift | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/DynamicIsland/managers/LocalSendDevicePickerWindowManager.swift b/DynamicIsland/managers/LocalSendDevicePickerWindowManager.swift index b5bc850..387bdf1 100644 --- a/DynamicIsland/managers/LocalSendDevicePickerWindowManager.swift +++ b/DynamicIsland/managers/LocalSendDevicePickerWindowManager.swift @@ -20,6 +20,16 @@ import AppKit import SwiftUI import Defaults +private func applyLocalSendPanelCornerMask(_ view: NSView, radius: CGFloat) { + view.wantsLayer = true + view.layer?.masksToBounds = true + view.layer?.cornerRadius = radius + view.layer?.backgroundColor = NSColor.clear.cgColor + if #available(macOS 13.0, *) { + view.layer?.cornerCurve = .continuous + } +} + @MainActor final class LocalSendDevicePickerWindowManager { static let shared = LocalSendDevicePickerWindowManager() @@ -34,6 +44,7 @@ final class LocalSendDevicePickerWindowManager { onDeviceSelected: @escaping (LocalSendDeviceInfo) -> Void, onDismiss: @escaping () -> Void ) { + let cornerRadius: CGFloat = 24 self.onDeviceSelected = onDeviceSelected self.onDismiss = onDismiss @@ -50,7 +61,7 @@ final class LocalSendDevicePickerWindowManager { if let existingWindow = window { let hostingView = NSHostingView(rootView: pickerView) - hostingView.layer?.backgroundColor = .clear + applyLocalSendPanelCornerMask(hostingView, radius: cornerRadius) existingWindow.contentView = hostingView existingWindow.makeKeyAndOrderFront(nil) return @@ -81,9 +92,7 @@ final class LocalSendDevicePickerWindowManager { pickerView .background(Color.clear) ) - hostingView.wantsLayer = true - hostingView.layer?.backgroundColor = .clear - hostingView.layer?.isOpaque = false + applyLocalSendPanelCornerMask(hostingView, radius: cornerRadius) newWindow.contentView = hostingView newWindow.isMovableByWindowBackground = true