Selaa lähdekoodia

Fix titlebar button tooltips on hover

- Stop removing all tracking areas in TitlebarIconButton so AppKit's
  tooltip tracking remains; keep a dedicated hover tracking area for
  hover visuals.

Made-with: Cursor
huzaifahayat12 3 kuukautta sitten
vanhempi
sitoutus
503637f4ad
1 muutettua tiedostoa jossa 10 lisäystä ja 3 poistoa
  1. 10 3
      google_apps/InAppBrowserWindow.swift

+ 10 - 3
google_apps/InAppBrowserWindow.swift

@@ -4,6 +4,7 @@ import WebKit
 /// Titlebar icon control: white/neutral tint (no accent blue), subtle hover and selected backgrounds.
 private final class TitlebarIconButton: NSButton {
     private var isHovering = false
+    private var hoverTrackingArea: NSTrackingArea?
     var isToggleActive = false
 
     override func awakeFromNib() {
@@ -29,13 +30,19 @@ private final class TitlebarIconButton: NSButton {
 
     override func updateTrackingAreas() {
         super.updateTrackingAreas()
-        trackingAreas.forEach { removeTrackingArea($0) }
-        addTrackingArea(NSTrackingArea(
+        // Do NOT remove all tracking areas here: AppKit uses its own tracking area for tooltips.
+        // We only manage our own hover tracking area.
+        if let hoverTrackingArea {
+            removeTrackingArea(hoverTrackingArea)
+        }
+        let area = NSTrackingArea(
             rect: bounds,
             options: [.activeInKeyWindow, .mouseEnteredAndExited, .inVisibleRect],
             owner: self,
             userInfo: nil
-        ))
+        )
+        hoverTrackingArea = area
+        addTrackingArea(area)
     }
 
     override func mouseEntered(with event: NSEvent) {