Subscribe to
Posts
Comments
NSLog(); Header Image

Cocoa’s Broken Proxy Icons

Occasionally, I'll download several movies from one location. I did so recently in grabbing a bunch of TextMate screencasts and a bunch of Wii videos from IGN's Wii site. Sometimes I'll keep a video, sometimes I'll throw it away when I'm done watching it.

This process would be rather simple if the proxy icon in QuickTime Player (QTP) actually worked. Instead, I watch a movie, drag its proxy icon to the trash, watch the trash highlight1, I drop, and… nothing happens. The movie should be placed into the trash. I could do trash the movies I didn't want to keep and close the windows of the ones I did (or move them out of my downloads folder), I could easily load the trash up with movies I wanted to delete and close the windows to movies I wanted to keep.

Do QTP (v7.1.3) proxy icons work for anyone else? BBEdit allowed me to put files in the trash via this method. TextMate, TextEdit, CSSEdit, and a few other Cocoa2 applications did not. Perhaps this is the expected behavior for?

Except that it isn't. Apple is abundantly clear on how a proxy icon should behave. In a Carbon dev doc titled "Handling Carbon Windows and Controls: Basic Window Manipulation," Apple says in a section called "Adding Window Proxy Icons":

If you create a document window, you should add a proxy icon to the title bar. This icon, which appears next to the window's title, serves as a proxy for the document's icon in the Finder. This proxy icon should appear and behave the way the document's icon does in the Finder.

Apple goes on to say:

Once a window has a proxy icon, the user should be able to manipulate it as if he or she were performing actions with a Finder icon for the window's file. For example, if a user drags a proxy icon to a folder, Finder window, the desktop, or another volume, the file represented by the proxy icon should be moved or copied accordingly, as if the user had dragged the file's icon in the Finder.

Nothing on Apple's site seems to contradict this, not even for dragging items to the trash3. The HIGs4 for Mac OS X windows says:

Document windows include a proxy icon in the title bar after a document is saved for the first time. After pressing a proxy icon for a brief period, users can manipulate it as if they were manipulating the corresponding file-system object. For example, you can attach a document to an email message by dragging its proxy icon into the email message.

Apple then provides an example illustrating the drag of a rich text file's proxy icon to an email to add an attachment.

In Cocoa applications, aliases are created at the drop locations - even across disks where a copy occurs in the Finder. When dragging proxy icons to the trash, nothing at all is done in Cocoa apps.

None of the Apple-written documents I read this evening say or suggest that an alias be created. The expected behavior remains consistent and incredibly simple: the proxy icon should behave as if the user was manipulating the document icon in the Finder.

Cocoa apps that do nothing but rely on NSDocument and NSWindow are, thus, quite broken.

Footnotes

  1. Actually it darkens, but you know what I mean - it "selects" or "activates."
  2. This distinction may be the dividing line, as QuickTime Player now links against Cocoa and behaves like a Cocoa app, including the use of aliases in drop locations via proxy icons, just like TextEdit.
  3. See this Google search.
  4. Yes, I realize some HIGs have gone the way of the dodo, but some remain very important, and I would argue that something as basic and central to the user experience as file manipulation is one of those that should remain consistent across the OS.

13 Responses to "Cocoa’s Broken Proxy Icons"

  1. When you drag proxy icons, it seems that creating an alias is the default. Holding down the option key allows you to copy; I cannot find a way to just move the original file. So yeah, I completely agree with you. The function of proxy icons in Cocoa apps seems to be broken right now.

    When dragging proxy icons to the trash, nothing at all is done in Cocoa apps.

    Under Leopard, it seems, dragging proxy icons from Cocoa applications to the trash will create an alias inside the trash. Yes, this is also useless. :-)

  2. [...] Apple is abundantly clear on how a proxy icon should behave. [...]

  3. One of the old distinctions between Carbon and Cocoa was that Cocoa apps would not require a pause when clicking to activate the proxy. I can't count the number of times I wanted to move a window by its title bar but instead wound up with a useless proxy icon. At least they fixed that (though the delay is still not as long as I would like).

  4. I've noticed that dragging a proxy icon to the trash results in, well, nothing happening. Never actually used it beyond once, so never cared to work out what apps it worked in.

    As to it creating aliases, the main way I use it is to drag things from a text editor to, say, CyberDuck, where it works exactly as I'd expect.

  5. I agree...not only is the alias behavior useless, it's also confusing if you're a new user. If it's an icon, it should behave as I'd expect.

    The only thing I really use proxy icons for, is I can command-click it and go to the parent folder in the Finder, and then type command-delete to move it to the trash. Would be nice to save a couple steps.

    A little off-topic, but why does Apple seem to be abandoning the HIG? I'm not a developer, but as a user, I really like the consistency and intuitiveness employed on the Mac. Isn't that made possible by the HIG?

  6. Why do Apple insist on the "Once a window has a proxy icon..."? Is there any reason not to allow the proxy icon to be used to save the document?

  7. This reminds me of "untitled" vs "Untitled". Apple says one thing and does another.

  8. I hope everyone complaining about this is also filing bugs in bugreporter.apple.com about it...

    Andrew: nobody could figure out a way to make a workable UI for saving from the proxy icon. They actually user-tested (yes, back when Apple still had a nominal UI team) several different ways of doing it, and always confused a nontrivial number of people. For Mac OS 8.5, when the Mac Toolbox team pushed to get the feature in, the UI designer took the pragmatic route of simply disabling the proxy icon until the user saved the file.

    This was one of the reasons -- not the only one, though -- it took so long to get proxy icons into the system software. (There was a MacHack demo of proxy icons circa 1992/1993. Mac OS 8.5 came out circa 1998.)

  9. This annoys me all the time. I constantly use the proxy icon when working with documents, and I could never figure out why a few apps (like Preview) refused to let me move or delete the file I was viewing.

  10. Apple replied to my radar bug report to ask for my System Profiler report. Because, yeah, that's relevant. Not! :-P

  11. And today it was refiled under the original bug report, #3580490.

  12. [...] The little icon in the titlebar of many applications is a “Proxy Icon” and can be dragged around just like the document’s icon can be… except it doesn’t always work. [...]

  13. [...] everywhere, I know. I wrote about some earlier ones here and today I discovered a new case in [...]


Trackback URI | Comments RSS

Leave a Reply

Please abide by the comment policy. Valid HTML includes: <blockquote><p>, <em>, <strong>, <ul>, <ol>, and <a href>. Please use the "Quote Me" functionality to quote comments.