From 7daa93cf5a1f142451edea55402c9fca265bde6e Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 26 Dec 2025 22:30:20 +0100 Subject: [PATCH] fix(macos): expand menu hover highlight width --- CHANGELOG.md | 1 + .../Sources/Clawdis/MenuHighlightedHostView.swift | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5440c5998..82fa01b29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -67,6 +67,7 @@ - OAuth storage moved; legacy session syncing metadata removed. - Remote SSH tunnels now get health checks; Debug → Ports highlights unhealthy tunnels and offers Reset SSH tunnel. - Menu bar session/node sections no longer reflow while open, keeping hover highlights aligned. +- Menu hover highlights now span the full width (including submenu arrows). ### Nodes & Canvas - Debug status overlay gated and toggleable on macOS/iOS/Android nodes. diff --git a/apps/macos/Sources/Clawdis/MenuHighlightedHostView.swift b/apps/macos/Sources/Clawdis/MenuHighlightedHostView.swift index 772facde4..2e16cf253 100644 --- a/apps/macos/Sources/Clawdis/MenuHighlightedHostView.swift +++ b/apps/macos/Sources/Clawdis/MenuHighlightedHostView.swift @@ -55,6 +55,7 @@ final class HighlightedMenuItemHostView: NSView { override func layout() { super.layout() + self.updateTargetWidthFromWindow() self.hosting.frame = self.bounds } @@ -83,6 +84,18 @@ final class HighlightedMenuItemHostView: NSView { let size = self.hosting.fittingSize self.frame = NSRect(origin: .zero, size: NSSize(width: self.targetWidth, height: size.height)) } + + override func viewDidMoveToWindow() { + super.viewDidMoveToWindow() + self.updateTargetWidthFromWindow() + } + + private func updateTargetWidthFromWindow() { + guard let width = self.window?.contentView?.bounds.width, width > 0 else { return } + if abs(width - self.targetWidth) < 0.5 { return } + self.targetWidth = width + self.updateSizing() + } } struct MenuHostedHighlightedItem: NSViewRepresentable {