View Single Post
I think OmniFocus handles context hierarchies backwards.

As you know, OmniFocus contexts can have child contexts. For example, I might have a context called computer with a child context called computer:online. Currently, if I select computer, I can see actions that belong to both the computer (parent) context and the computer:online (child) context.

This behavior -- showing the actions of child contexts along with those of the parent when a parent context is selected -- is actually backwards, since anytime I am in the computer:online (child) context I am also in the computer (parent) context -- but not vice versa. The child context is a subset of the parent context, so any action that belongs to the parent context can be performed in the child. Right? Yet OmniFocus shows the children's actions when a parent is selected, which is backwards. Instead, it ought to show the parent's actions when any of its children is selected.

I think OmniFocus' context display needs to work opposite how it currently works: selecting a child context should show both the child and its parent's actions, and selecting a parent context should show just the parent's actions.

Here is some ASCII art of context mode, to explain what I mean.

Current OmniFocus behavior (nonsensical, because it shows online tasks when I am not online but merely at the computer):

Code:
    Contexts       | Puter
   ->   Puter      |     calculate pi
            Online |
                   | Puter:Online
                   |     do web research
Code:
    Contexts       | Puter:Online
        Puter      |     do web research
   ->       Online |
                   |
                   |
The way I think OmniFocus should work (sensible, because anytime I am online, I am also at the computer):

Code:
    Contexts       | Puter
   ->   Puter      |     calculate pi
            Online |
                   |
                   |
Code:
    Contexts       | Puter
        Puter      |     calculate pi
   ->       Online |
                   | Puter:Online
                   |     do web research
What do you think? Will somebody have to re-write a bunch of outliner code?