10

Every so often I accidentally click on an icon in my dock, when I meant to click on the icon next to it. The application chugs into action, slowing down my computer a bit, and I have to wait until it's launched until I cancel it. It's all mildly irritating.

I'm sure I can't be the only one to experience this, but Apple don't seem to want to do anything about it. Do you think this is because there's no elegant solution, or can you think of something?

3
  • Wow, I am not the only person having this issue. +1 for good question :-) May 18, 2012 at 7:45
  • Not that this is an elegant solution to the problem, but what I usually do is just right click and force close as soon as I accidentally click on an icon.
    – Tim
    May 18, 2012 at 14:16
  • Could it be that The magnification effect creates an illusion of a larger clickable area? However, because of the drifting of the neighboring icons, it is just as wide as before the magnification. May 19, 2012 at 7:43

3 Answers 3

8

This is not unique to Mac OS. Windows 7 'pinned' applications, and Ubuntu app bar both have this same problem. While technically it would be nice to have a 'Cancel Launch' choice if you right clicked, the practical issue is that terminating a program mid launch is dangerous; the programmer who wrote the application is very unlikely to expect you to change your mind like that. Half-initialized data structures could be left dangling. Cleanly handling an aborted launch is heavily on the application developers side, and the OS developer can't tell which apps are safe to terminate early and which are not. Due to this, it's unlikely to see it anytime soon.

So it's not technically feasible to interrupt a launch in progress. But there is one way I've seen made popular by tablet interfaces: if a user clicks near a border, ignore the click. In other words, make the click targets smaller, closer to the middle of the icons, and borders become a 4-10 pixel 'no man's land' where clicks are ignored. This greatly helps in inaccurate touch devices, but it can easily be adapted to this use case as well.

2
  • 1
    Note that actually some Microsoft Office 2010 applications handle this and DO have a cancel button on the splash screen. So it is possible, but maybe not always feasible.
    – GotDibbs
    May 18, 2012 at 0:58
  • 4
    This is exactly what I said; it is on the app developer side, the OS cannot assume a program launch can be aborted. In this case the Office team coded in launch canceling; that doesn't mean the Windows OS team can. May 18, 2012 at 1:15
4

As others have pointed out, it's unsafe to force-quit an application during its initialization phase. So I would allow the user to right-click on a bouncing application icon while it loads, and allow them to select Quit (rather than Force Quit). I would then stop the bouncing animation and buffer the Quit event until the application finishes launching, and as soon as it's finished lanuching, send it a clean Quit message. This should prevent the application from ever actually appearing or drawing any windows or consuming any resources other than what it needs at startup. This won't prevent disk activity and memory allocation during startup, but would save the user the hassle of having to switch to the application and manually quit it.

1
2

I would have the window manager hide the application and issue a SIGTERM to it. This is an implemented-practically-everywhere Unix signal that tells the application to shutdown cleanly, whatever its state.

Because the application is hidden, the user doesn't need to know that it is in the process of shutting down. It doesn't solve the issue of the disk read / cpu usage, though.

1
  • You could also "nice" the process, limiting the amount of CPU time it's allowed to consume and the amount of disk access it's permitted. This would mean it would not have such an impact on the rest of the system, but would take longer to clean up. May 18, 2012 at 23:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.