From 990fafa98846693671cffd7d9fd84137b6f11ccf Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 13 Dec 2025 17:15:17 +0000 Subject: [PATCH] fix(mac): use pointing hand cursor on tool links --- .../Sources/Clawdis/PointingHandCursor.swift | 31 +++++++++++++++++++ .../macos/Sources/Clawdis/ToolsSettings.swift | 1 + 2 files changed, 32 insertions(+) create mode 100644 apps/macos/Sources/Clawdis/PointingHandCursor.swift diff --git a/apps/macos/Sources/Clawdis/PointingHandCursor.swift b/apps/macos/Sources/Clawdis/PointingHandCursor.swift new file mode 100644 index 000000000..2f1828e05 --- /dev/null +++ b/apps/macos/Sources/Clawdis/PointingHandCursor.swift @@ -0,0 +1,31 @@ +import AppKit +import SwiftUI + +private struct PointingHandCursorModifier: ViewModifier { + @State private var isHovering = false + + func body(content: Content) -> some View { + content + .onHover { hovering in + guard hovering != self.isHovering else { return } + self.isHovering = hovering + if hovering { + NSCursor.pointingHand.push() + } else { + NSCursor.pop() + } + } + .onDisappear { + guard self.isHovering else { return } + self.isHovering = false + NSCursor.pop() + } + } +} + +extension View { + func pointingHandCursor() -> some View { + self.modifier(PointingHandCursorModifier()) + } +} + diff --git a/apps/macos/Sources/Clawdis/ToolsSettings.swift b/apps/macos/Sources/Clawdis/ToolsSettings.swift index f5931970c..939dd5316 100644 --- a/apps/macos/Sources/Clawdis/ToolsSettings.swift +++ b/apps/macos/Sources/Clawdis/ToolsSettings.swift @@ -295,6 +295,7 @@ private struct ToolRow: View { } .foregroundColor(.accentColor) .onHover { self.linkHovering = $0 } + .pointingHandCursor() Text(self.tool.description) .font(.subheadline) .foregroundStyle(.secondary)