Environment: macOS Golden Gate 27.3 (26C5035r) arm64, Apple silicon, one display at 2240×1260 (scaled).
Symptom. A tooltip window stays on screen at full opacity after the pointer has left. Sometimes it sits in the middle of the screen, far from the menu bar item it belongs to. Hovering or clicking that menu bar item clears it. I've seen it with seven apps: Syncthing, DriveDx and Private Internet Access (menu bar items), and Google Chrome, Chrome Beta, Opera and iTerm2 (tooltips inside their windows).
What I measured (polling CGWindowListCopyWindowInfo, plus sample):
- The stuck window belongs to the app's own process, at window layer 103, alpha 1.0.
- The app is idle while it's stuck: its main thread is in
mach_msg2_trapin 85–100% of samples. - In the Chrome and Opera samples the tooltip is handled by
NSToolTipManager(displayToolTip:,mouseEnteredToolTip:inWindow:pointInWindow:,fadeToolTip:). - Every tooltip is drawn 19–20 pt below where the pointer was when it was shown, so a mid-screen tooltip was shown while the pointer was there.
- Syncthing (open source) only sets
statusItem.button.toolTip, on the main thread, when its status changes. It has no tracking areas or mouse handling of its own.
Reproducible part (Syncthing's menu bar item):
- Have its tooltip stuck. This happens on its own from time to time. I can't trigger it on demand.
- Leave the pointer anywhere away from the menu bar and change a file in a synced folder, so that Syncthing updates its status and sets a new
toolTip.
Result: the stuck tooltip window (same window number) moves to 19–20 pt below the current pointer position and stays there. It happened twice in a row, 25 seconds apart, at two different pointer positions.
Control: with nothing stuck, 9 such changes (some local, some synced in from another machine) showed no tooltip anywhere.
Expected: a tooltip is only shown while the pointer is over its view, and a toolTip change while the pointer is elsewhere shows nothing.
So setting toolTip doesn't show a tooltip on its own, it only moves one that is already stuck. I don't know what leaves it stuck in the first place.
Possibly related: FB23329983 (status item buttons not getting hover events on macOS 27 betas, reported fixed in beta 5), from this thread.
Screenshots of sample tooltips attached.