OmniFocus takes its name too literally

If you use OmniFocus for the iPhone and OmniFocus for the Mac, you’ll certainly want the two task lists to stay in sync. At present, the only way to do that is to use an unstable, “unreleased” version 1.1 of OmniFocus for the the Mac. Omni cutely calls this a “Sneaky Peek” build of version 1.1, but the more ominous name comes at the end of the .dmg file: Alpha.

For alpha software, OmniFocus 1.1 is quite good. I can’t remember it ever crashing on me, and it definitely hasn’t lost any data. It has had two significant problems: a failure to sync through any service other than MobileMe, and a user interface problem I’ll call “focus hogging.”

The syncing problem hit me first. I could write a thousand words on the trials and tribulations I went through over my first couple of days with version 1.1, but I’ll spare you that. In a nutshell:

• I couldn’t get syncing to work on two separate WebDAV servers.
• I then signed up for the 60-day MobileMe trial and syncing has worked fine ever since.

Omni has been updating version 1.1 almost every day since the July 11 launch of OmniFocus for iPhone. The changelog shows that most of the changes have to do with syncing, so maybe the specific problems I had have been fixed. Sometime before my 60-day trial is up, I’ll try to do a sync to a regular WebDAV server; if it works, I’ll probably drop MobileMe.

The focus hogging problem is related to Spaces. I have my Mac configured to use two Spaces. I keep OmniFocus and iCal, my planning applications, in Space 2 and everything else in Space 1. When I’m planning, I’m in Space 2; when I’m working, I’m in Space 1. It’s simple, easy to remember, and keeps my screen relatively uncluttered.

Here’s how things are supposed to work when you move from one Space to another: the frontmost application in the Space you are switching from is supposed to relinquish focus, and the frontmost application in the Space you are switching to is supposed to get focus.1 This is the right behavior because the application you’re looking at should be the application you’re working in.

When switching to the Space with OmniFocus, the correct behavior is followed. If, for example, OmniFocus is the frontmost application in Space 2, it gets focus when I switch into Space 2. But when I switch out of Space 2, things don’t always work right. In particular, if OmniFocus is the frontmost application in Space 2 and I switch to Space 1, OmniFocus retains focus.2 Even though it isn’t on the screen, most keystrokes will be sent to it for interpretation and action. This is a terrible user interface problem because it’s natural to believe that you’re working in the application you see in front of you.

Now, if your first action after switching Spaces is to click somewhere with the mouse, nothing bad is likely to happen because that initial mouse click will change the focus to the application you clicked on. But if your first action after switching Spaces is to use a keyboard shortcut or press the Delete key, that will trigger an action by OmniFocus, not the application you’re looking at. This can be a disaster, especially if you don’t immediately realize what’s happened. I once deleted a set of Contexts from OmniFocus this way (still not sure of the specific action or actions that did it). Fortunately, I only deleted Contexts and not Actions, so it was easy to repair the damage.

I had always thought that the “switch focus when switching Spaces” behavior was system-wide, that it was imposed by OS X and that no application could violate it even if it wanted to. Obviously, I was wrong about that. OmniFocus 1.1 is the only application I have that behaves in this terribly counter-intuitive way.

I sent in a bug report on this behavior a few days ago. I got the automatic reply, but haven’t heard back from a real person. Until this is fixed, OmniFocus 1.1 users should be careful when switching Spaces.

Update
I got an email about the focus hogging from Omni this afternoon (7/29/08). As far as they know, focus switching when switching Spaces is imposed by the system, and they don’t know why OF 1.1 is behaving this way. They suspect it’s due to some quirk (bug) in Spaces but don’t know what aspect of their code is triggering it. They’ve filed bug reports with Apple and are hoping to get the issue resolved.

Further update—July 31, 2008
OmniFocus 1.1 Revision 103490, released yesterday, fixed the focus hogging problem. Today’s release, Revision 103547, also works correctly, so it looks like Omni has this bug whipped and it won’t return. My thanks to Ken Case for his quick response.

1. Some terminology: An application “has focus” when the menubar has its menus and most keystrokes and mouse clicks are sent to that application for interpretation and action. It’s the application you’re working in, the current application.

2. This is the behavior regardless of whether the box in the Spaces Preference Pane labeled “When switching to an application, switch to a space with open windows for the application” is checked or not.