This feels like a bit too much responsibility for this class. It might be cleaner if we add a method in KeyShortcutPresenter to activate a modal context, which will temporarily disable all the other contexts until the modal context is disabled. e.g.

```java
public void startModalContext(ShortcutContext context)
{
    this.modalContext = context;
}

public void endModalContext()
{
    this.modalContext = null;
}

// and when it does key shortcut lookups
if (modalContext != null)
{
   // just check modalContext instead of activeContexts
}
```