OS X 10.3.3 breaks SystemTrayIconComponent

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?


10.3! Wow..

But sure, that change is simple enough that I'm happy to add it. Can't guarantee that our future changes won't break 10.3 though!

Ooops. I ment to say 10.10.3. Sorry about that :-)

Ah, that makes more sense! Thanks!

Did this get fixed? I’m still running into this issue. I assume Apple has changed something else…

I can see that the above code was implemented in ViewBasedStatusItem but when I create a SystemTrayIconComponent it seems to create a ButtonBasedStatusItem.