On OS X 10.3.3 the bounds of the system tray owner component are (0,0,0,0). The reason is that frameChanged in the SystemTrayViewClass is never called after the NSStatusItem has been created. I assume previous versions of OS X called frameChanged at least once.
The fix is simple, after the creation of the NSStatusItem call frameChanged manually once:
statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength: NSSquareStatusItemLength] retain]; [statusItem setView: view]; SystemTrayViewClass::frameChanged(view, nil, nullptr);
Jules, do you think this could be added?