Shades Feature Request

3 Votes

very EASY feature: make the menu bar icon hitbox larger

  • Status: Verified


Standard mac menu bar icon's hitbox extend all around the section, but Shades' hit detection is at the center the icon making user interaction frustrating

Submitted at 03:19am on 25 Feb 2009


Here is a clarification of the problem, with as much explanation as I can give. You probably already know some of what Iâm going to explain, but I wrote this just in case, because I really want this issue to be fixed.

There is an area you can click in the menu bar (light gray bar at the top of the screen, semi-transparent by default) to open the Shades menu with the slider. This area might be called âhitboxâ, âhit boxâ, âhit areaâ, âhot spotâ, âactive targetâ, or other names.

For all other menu items on the computer, this hitbox is rectangular. Vertically, it extends from the very top of the menu bar to the very bottom. Horizontally, it extends from a little past the leftmost part of the icon or word to a little past the rightmost part. In other words, the rectangle is bigger than the icon or word itself. You can see this rectangle simply by clicking on a menu â the rectangle will light up in blue (while the icon or word turns white). This applies to all menu items Iâve seen, like âFileâ, âEditâ, the application menu in bold, the Apple menu with the  icon, the time in the top-right, and the battery indicator menu. Even other third-party menu items like Dropbox, F.lux, SizeUp, and Slife do this.

However, Shades currently has a differently-shaped hitbox. You can open the menu and you will see a blue rectangle, but this rectangle is a lie: it is not the hitbox. For Shades, the hitbox is not actually box-shaped. Shadesâs hitbox is shaped exactly like the black sunglasses icon it shows in the menu bar. You must click on a pixel that is within that icon; clicking just a few pixels too high, or at the top of the menu bar, is not enough to activate the Shades menu.

So Shadesâs hitbox is smaller than normal. Why is this a problem? Fittsâs law ('s_law) reveals why. The bigger the hitbox, the easier it is for the user to hit the target. So Shadesâs small hitbox makes it hard for users to open the menu, causing frustration.

But itâs not just the fact that Shadesâs hitbox is smaller. A critical point is that its hitbox does not reach the top of the screen. If it did, like other menu bars, you could open Shadesâs menu by flinging the mouse as hard as you can to the top of the menu, letting the pointer be stopped by the edge of the screen, and then clicking. Gruber of Daring Fireball explains this with respect to the corners of the screen, which are like the edges of the screen but doubly so, at

Even when users donât know what Fittsâs law is, they generally rely on it when opening menus. When they click on the area above the Shades icon and the menu doesnât open, they get frustrated. I know I was quite frustrated with Shades whenever I had to use it until I figured out the reason it wasnât working properly. Most users donât have as much computer background as me and will never figure out why the menu doesnât always work, leaving them with nothing but frustration they donât know where to direct.

So now you know what the problem is â you need to make the hitbox of Shadesâs menu extra a full-size rectangle. Iâm afraid I canât help you with that, as I donât know what mechanism you are using to create a menu extra. However, since all other third-party menu extras on my computer manage to do it, I wouldnât expect it to be too hard.
Two possibilities of what is required:
⢠You have to add something like NSFullSizeMenuHitbox to a PLIST file
⢠You have to enlarge the Shades icon for the menu extra, with the black sunglasses the same size, but surrounded by a totally-transparent border to make the image size the size of the hitbox you want.

In closing, please fix this!

Posted by Rory OâKane at 01:04am on 04 Jul 2011

It seems your bug tracker couldn't handle some of the special characters in my report. Here's a guide to translate the messed-up characters above to the characters I was actually using. Of course, in this report, I am only using the simplified, ASCII-compatible version of those characters, or just describing the character.

â is ', ", or -
 is the Apple logo (option-shift-K on a Mac)
⢠is a bullet (black circle, option-8)

Posted by Rory O'Kane at 01:11am on 04 Jul 2011

One more time â the messed-up characters I gave as examples to convert from were themselves messed-up:

â is ', ", or -
 is the Apple logo (option-shift-K on a Mac)
⢠is a bullet (black circle, option-8)

Posted by Rory O'Kane at 01:12am on 04 Jul 2011

Thanks for the detailed explanation, however we are aware of the issue and it has been logged and responded to before. In short, you're right that it is annoying and you're right about what the solution is, but you're wrong that it's an easy fix.

You are assuming that the problem is that we've used a small hit area and that we just need to use a bigger one. The actual problem is that The Shades daemon is written in an ancient version of REALbasic and uses a closed-source 3rd party plugin to create the menu item. The plugin API takes an icon and generates the menu item automatically. In Mac OS 10.4 Tiger it used to create a button that matched the menu size, but as of 10.5 Leopard it changed to only match the icon itself (presumably because it's relying on some undocumented behavior of the underlying NSStatusItem API).

The solution? Rewrite the entire daemon in Cocoa. Estimated effort? About two weeks of development. Estimated income for spending two weeks re-writing a free app to solve one non-critical bug? Ah...

It is on the to-do list of things to sort out when I get some downtime (I use Shades myself, and don't think this doesn't bug me too!), but I can't justify it right now. Sorry, about that. The keyboard shortcuts should help a bit though.

Posted by Nick at 07:20am on 04 Jul 2011

I understand your situation. Thanks for your reply.

Posted by Rory O'Kane at 4:59pm on 04 Jul 2011


Add More Information


(optional, will not appear on report)

What is twenty-two plus ten?