I installed Mac OS X public beta on my G3 bondi iMac in September 2000. I have used every single version of Mac OS X so I'm not sure when this happened, but at some point the dock stopped working right. I've noticed this for a while but I don't think it was always like this.
Today when I put my mouse at the bottom of the screen the dock pops up with maybe 50% predictability. Half of the time it appears, the other half it doesn't, it just remains hidden. My pointer goes all the way to the bottom, I wiggle it back and forth, no dock. I move it up the screen, put it back down, and another 50/50 encounter ensues -- which means I bounce my mouse on the bottom of the screen and it eventually unhides.
That's preposterous. Why would that be the way?
I have fixed this. Below I will tell you how but first I really want to ponder, why in ever living hell would it be this way? The pointer is literally on top of the dock on the bottom-most pixel row of the screen waving left and right for a few seconds. What "stay hidden until mouse is near" algorithm is failing to recognize this? As a software programmer I can't even figure out how to write code which would decide to unhide the dock but would fail to recognize this case. How badly did you screw up the code to make that fail?
if(mouse.loc.isWithin(dock.bounds)) doc.unhide();
Right? I mean, you couldn't possibly screw up isWithin(), so what part of that code is failing, or what part of the Mac code is different than that?
Solution:
defaults write com.apple.dock autohide-delay -float 0; killall Dock
The intent of that setting is to make the dock go away fast, and it does have that effect, and it also has the effect of making the dock appear quickly. The quickness is great but not the primary benefit. The best thing is that the interaction is now 100% consistent, the dock always shows, no problem, no bouncing the pointer. I can't decipher what would make "wait this long before showing" to cause "stay hidden forever", but here we are.
NOTICE: I specifically claim full copyright over the if statement pseudocode I wrote above. It is an original work by me. Nobody may copy that line of code, especially Apple, but I offer to sell it to Apple for the low low price of one million dollars. Because apparently that line of code expresses a brilliance not found in your user interface engineering team. Call me.
No comments:
Post a Comment