From 684cc666d3b55eec5933b05319ec5145d885d755 Mon Sep 17 00:00:00 2001 From: lwouis Date: Mon, 6 Jan 2025 14:25:40 +0100 Subject: [PATCH] fix: window preview was not showing in titles style --- src/logic/Windows.swift | 6 +++--- src/logic/events/TrackpadEvents.swift | 2 +- src/ui/App.swift | 4 +++- src/ui/main-window/PreviewPanel.swift | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/logic/Windows.swift b/src/logic/Windows.swift index c76b93f5..368a7c0d 100644 --- a/src/logic/Windows.swift +++ b/src/logic/Windows.swift @@ -173,8 +173,9 @@ class Windows { } static func previewFocusedWindowIfNeeded() { - if Preferences.previewFocusedWindow && !Preferences.onlyShowApplications() - && App.app.appIsBeingUsed && App.app.thumbnailsPanel.isKeyWindow, + if App.app.appIsBeingUsed && SystemPermissions.screenRecordingPermission == .granted + && Preferences.previewFocusedWindow && !Preferences.onlyShowApplications() + && App.app.thumbnailsPanel.isKeyWindow, let window = focusedWindow(), let id = window.cgWindowId, let thumbnail = window.thumbnail, @@ -303,7 +304,6 @@ class Windows { // dispatch screenshot requests off the main-thread, then wait for completion static func refreshThumbnails(_ windows: [Window], _ onlyUpdateScreenshots: Bool) { - if Appearance.hideThumbnails { return } var eligibleWindows = [Window]() for window in windows { if !window.isWindowlessApp, let cgWindowId = window.cgWindowId, cgWindowId != CGWindowID(bitPattern: -1) { diff --git a/src/logic/events/TrackpadEvents.swift b/src/logic/events/TrackpadEvents.swift index 39fe68f6..407d47e3 100644 --- a/src/logic/events/TrackpadEvents.swift +++ b/src/logic/events/TrackpadEvents.swift @@ -77,7 +77,7 @@ private func touchEventHandler(_ cgEvent: CGEvent) -> Bool { class GestureDetector { static func convertEvent(_ cgEvent: CGEvent) -> NSEvent? { var nsEvent: NSEvent? - // convertion has to happen on the main-thread, or appkit will crash + // conversion has to happen on the main-thread, or appkit will crash DispatchQueue.main.sync { nsEvent = NSEvent(cgEvent: cgEvent) } diff --git a/src/ui/App.swift b/src/ui/App.swift index f92a69f3..6b074f36 100644 --- a/src/ui/App.swift +++ b/src/ui/App.swift @@ -198,7 +198,9 @@ class App: AppCenterApplication { } func refreshOpenUi(_ windowsToScreenshot: [Window], skipUpdatesBeforeShowing: Bool = false, onlyUpdateScreenshots: Bool = false) { - if !Appearance.hideThumbnails && !windowsToScreenshot.isEmpty && SystemPermissions.screenRecordingPermission == .granted { + if !windowsToScreenshot.isEmpty && SystemPermissions.screenRecordingPermission == .granted + && !Preferences.onlyShowApplications() + && (!Appearance.hideThumbnails || Preferences.previewFocusedWindow) { Windows.refreshThumbnails(windowsToScreenshot, onlyUpdateScreenshots) return } diff --git a/src/ui/main-window/PreviewPanel.swift b/src/ui/main-window/PreviewPanel.swift index b628a365..fc5589e1 100644 --- a/src/ui/main-window/PreviewPanel.swift +++ b/src/ui/main-window/PreviewPanel.swift @@ -28,7 +28,7 @@ class PreviewPanel: NSPanel { } func show(_ id: CGWindowID, _ preview: NSImage, _ position: CGPoint, _ size: CGSize) { - if id != currentId { + if previewView.image != preview { previewView.image = preview.copyToSeparateContexts() previewView.image!.size = size var frame = NSRect(origin: position, size: size)