From 579c4d3ca6b9a45c86fdde2b8c6f5af26b301f9c Mon Sep 17 00:00:00 2001 From: Hariharan Mudaliar Date: Mon, 21 Jul 2025 14:29:24 +0530 Subject: [PATCH] Working Clipboard --- DynamicIsland/DynamicIslandApp.swift | 11 ++++++++--- DynamicIsland/DynamicIslandViewCoordinator.swift | 8 ++++++++ .../components/Notch/DynamicIslandHeader.swift | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/DynamicIsland/DynamicIslandApp.swift b/DynamicIsland/DynamicIslandApp.swift index ab73c2e..f4c7ebd 100644 --- a/DynamicIsland/DynamicIslandApp.swift +++ b/DynamicIsland/DynamicIslandApp.swift @@ -292,15 +292,20 @@ class AppDelegate: NSObject, NSApplicationDelegate { // Open the notch if it's closed if viewModel.notchState == .closed { viewModel.open() + + // Wait a bit for the notch to open before toggling clipboard + DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) { + self.coordinator.toggleClipboardPopover() + } + } else { + // If notch is already open, toggle immediately + self.coordinator.toggleClipboardPopover() } // Start clipboard monitoring if not already running if !ClipboardManager.shared.isMonitoring { ClipboardManager.shared.startMonitoring() } - - // Post notification to trigger clipboard popover - NotificationCenter.default.post(name: NSNotification.Name("ToggleClipboardPopover"), object: nil) } if !Defaults[.showOnAllDisplays] { diff --git a/DynamicIsland/DynamicIslandViewCoordinator.swift b/DynamicIsland/DynamicIslandViewCoordinator.swift index 420eedc..af545a7 100644 --- a/DynamicIsland/DynamicIslandViewCoordinator.swift +++ b/DynamicIsland/DynamicIslandViewCoordinator.swift @@ -213,4 +213,12 @@ class DynamicIslandViewCoordinator: ObservableObject { func showEmpty() { currentView = .home } + + // MARK: - Clipboard Management + @Published var shouldToggleClipboardPopover: Bool = false + + func toggleClipboardPopover() { + // Toggle the published property to trigger UI updates + shouldToggleClipboardPopover.toggle() + } } diff --git a/DynamicIsland/components/Notch/DynamicIslandHeader.swift b/DynamicIsland/components/Notch/DynamicIslandHeader.swift index 4a0fbee..05ffffc 100644 --- a/DynamicIsland/components/Notch/DynamicIslandHeader.swift +++ b/DynamicIsland/components/Notch/DynamicIslandHeader.swift @@ -138,7 +138,7 @@ struct DynamicIslandHeader: View { } .foregroundColor(.gray) .environmentObject(vm) - .onReceive(NotificationCenter.default.publisher(for: NSNotification.Name("ToggleClipboardPopover"))) { _ in + .onChange(of: coordinator.shouldToggleClipboardPopover) { _ in // Only toggle if clipboard is enabled if Defaults[.enableClipboardManager] { showClipboardPopover.toggle()