Ejection

It’s a Daring Fireball Thanksgiving-week tradition: griping about the OS X Finder.

Today’s example pertains to a very specific instance of click-through in the Panther Finder. (Click-through is what happens when a window in the background accepts mouse clicks without bringing the window to the front first. See previous Fireballs here and here for more about click-through in general.)

The top of the Finder’s new sidebar shows all available volumes. (Well, not really all, since it won’t show network volumes mounted via the now-sort-of-functional top-level “Network” dingus, but that’s another story.) Volumes which can be unmounted have a little eject button next to them:

The volumes list in the new Finder sidebar.

And if you hover the mouse cursor over the eject button, it lights up:

Mouse cursor hovering over eject button.

If you’re going to have a list of mounted volumes, eject buttons are a good idea. At least in terms of being obvious and natural, it’s certainly an improvement over the Mac’s ancient drag-the-volume-icon-to-the-Trash gesture, which is infamously weird — if you drag files and folders to the Trash to delete them, it seems natural to drag a volume to the Trash to erase it. That’s certainly what most new Mac users assume.

I drag the FireWire disk icon to the Trash to eject it?

— I know it sounds weird, but yes.

Really?

— Yup.

It won’t erase the disk?

— Nope.

The trash-as-unmounter gesture is a bit less scary on Mac OS X than it was on Mac OS 9, because once you initiate such a drag, the Trash icon in the Dock turns into an eject button. But even that’s somewhat awkward, because the eject icon doesn’t appear until after you’ve started dragging the disk icon.

So, so far, so good. The sidebar’s eject buttons are, in principle, a good idea for the volume list. In addition to making it obvious how to eject/unmount a volume, it also makes it obvious which volumes can be unmounted. E.g., you can’t unmount your startup disk, and so it doesn’t get an eject button.

The blue selection color, with the pretty gradient blend, is not based on my preferred selection color. It’s hard-coded, and “standard” only in the sense that it matches the gradient blue selection style in iTunes’s and iCal’s sidebars. (iPhoto, on the other hand, uses your regular selection color for items in its sidebar, which, under the perverse human interface standards of the iLife suite, is arguably wrong.) Likewise, the eject buttons don’t look like standard buttons. But when in Rome, do as the Romans.

Where things get weird with the eject buttons is when Finder windows are in the background. If the Finder is still the active app, when you hover over an eject button in a background window, the button’s rollover effect still lights up:

Mouse cursor hovering over eject button in background window, while Finder is active.

But if you click the mouse at this point, it doesn’t actually unmount the volume — it only brings the window forward.

However, if the Finder itself is not the active application, the eject buttons no longer light up when you mouse over them:

Mouse cursor hovering over eject button in background window, while Finder is also in background.

But if you click at this point, not only does that Finder window activate, but the disk is unmounted.

In other words, when the Finder is the active app, the eject buttons in background windows look like they support click-through (because they light up when you mouse over them), but they don’t; when the Finder is not the active app, the eject buttons look like they don’t support click-through (because they don’t light up), but they do.

Update: It ends up the window also has to be in icon view for this to happen. Thanks to several readers who helped narrow this down.

This is so bizarre that it’s got to be a bug. For one thing, despite the fact that I’ve got a book-length list of human interface complaints about the OS X Finder, I have very few complaints about the way it handles click-through. In fact, the Finder is a model of well-thought-out click-through behavior.

The least suitable controls for click-through are the ones which are the most dangerous. Although you can’t lose data by accidentally triggering an eject button, you can lose a fair bit of time by having to remount the volume. (And you can’t use undo to remount a volume.) Click-through doesn’t work anywhere else in the Finder sidebar, and so it makes no sense that it’d be purposefully enabled for the eject buttons. Furthermore, eject button click-through only works if the volume in question is already selected in the sidebar, and only if the window is in icon view.

Click carefully.

Further Reading

Eric Blair describes another click-through glitch in the Panther Finder: Command-clicking in the toolbar allows you to rearrange the buttons while the window is in the background, which (a) you probably don’t want to do; and (b) gets in the way of your ability to Command-drag a background window to move it without bringing it forward.