wails/v3/pkg
Lea Anthony 5d6e9872d4
fix(systray): highlight status item and ensure popup appears above other windows on macOS (#4913)
* fix(systray): highlight status item and ensure popup appears above other windows on macOS

Fixes #4910

This commit addresses two issues with the systray-menu example on macOS:

1. System tray icon not in selected state upon clicking:
   - Added systemTraySetHighlight() function to control the NSStatusBarButton highlight state
   - Set highlight:YES before showing menus via popUpStatusItemMenu
   - Added onAttachedWindowShown/Hidden hooks for managing highlight with attached windows
   - Note: For attached windows, the highlight may briefly flash due to macOS
     NSStatusBarButton behavior where mouse-up clears highlight state

2. Popup doesn't display on top of other windows:
   - Set window level to NSPopUpMenuWindowLevel when positioning systray popup windows
   - Call orderFrontRegardless to ensure the window appears in front

The fix adds onAttachedWindowShown() and onAttachedWindowHidden() to the
systemTrayImpl interface to allow platform-specific handling when the
attached window visibility changes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: add changelog entry for systray fixes (#4910)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: trigger fresh CI run

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Simplify systray fix - remove unused window highlight code

Remove onAttachedWindowShown/Hidden interface methods and systemTraySetHighlight
function since they only worked for menus, not attached windows. The menu
highlight (set before popUpStatusItemMenu) and window level fixes remain.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(v3/macos): use native menu tracking for systray highlight and focus (#4910)

Replace popUpStatusItemMenu: (which never provided native highlighting)
with a local NSEvent monitor that temporarily sets statusItem.menu before
the button processes mouse-down events. This lets macOS handle menu
tracking natively, which:

- Keeps the status bar button highlighted while the menu is open
- Does not activate the app or steal focus from other windows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-28 16:09:43 +11:00
..
application fix(systray): highlight status item and ensure popup appears above other windows on macOS (#4913) 2026-02-28 16:09:43 +11:00
doctor-ng feat(linux): GTK4 + WebKitGTK 6.0 support (opt-in via -tags gtk4) (#4958) 2026-02-06 21:55:45 +11:00
errs feat: adapt iOS and Android message processors to RuntimeRequest transport 2025-12-10 21:27:04 +11:00
events fix(v3): overhaul drag-and-drop for Linux reliability and simplify Windows implementation (#4848) 2026-01-04 11:08:29 +11:00
icons [v3 windows] Small icon updates 2023-06-10 10:19:33 +10:00
mac [v3] Add start_at_login plugin 2023-04-05 21:22:02 +10:00
services fix(v3): Dock ops sync and add GetBadge method (#4838) 2026-02-09 21:03:45 +11:00
w32 fix(windows): skip DPI awareness API call when already set via manifest (#4811) 2026-01-21 19:23:56 +11:00