Comments
-
Greg Hurrell
Thanks for submitting the request!
There are two types of menus that you see on the right hand side of your menu bar:
1. NSStatusItem-based menus: this is an official, supported, documented API, and the one used by Synergy. Using NSStatusItem has some limitations, however, such as the inability to rearrange the order of the menus or to drag them around by holding down the Command key.
2. NSMenuExtra-based menus: this is a private, undocumented, unsupported API, officially approved for use only by Apple (which you can see in the Fast User Switching menu, AirPort status, battery level indicator and so on). Any third-party app which uses this risks being broken by a future OS update. In fact, several releases back (in Jaguar, I think) Apple explicitly broke all third-party menu extras because the didn't want outside developers using the API; so from that point on it became necessary to use a hack like "Menu Cracker" to work around Apple's changes. Needless to I presume that if Quicksilver can change its ordering then it must be using the private NSMenuExtra API.
I don't really want to use an unsupported API in Synergy, although I did use it in WinSwitch because I really had no other choice; I basically had to copy the functionality of Apple's own Fast User Switching menu and so that forced me to use NSMenuExtra. But in the case of Synergy there are no precedents that I was forced to match and so it was safer to take the more conservative route of using only documented, supported, non-private APIs. So for the time being I am going to mark this as WONTFIX.
The ideal solution would be for Apple to do one of two things:
1. Make the NSMenuExtra API open to other developers.
2. Remove some of the limitations of the NSStatusItem API so that developers can benefit from reorderable menu items and get features like Command-dragging while using a supported API.
So one thing you can do if you'd like to see this happen is submit a bug report or feature request to Apple. The more people who do this the more likely Apple will give us what people are asking for. I'd be very happy to implement this if Apple can make one of those changes, in which case we can re-open this request.
Add a comment
Comments are now closed for this issue.