GGUI::KeyRouter class

KeyRouter: is this key the UI's or the game's?

Like PointerRouter, decided from a published snapshot only. The UI owns the keyboard while it is being driven by keys: Tab brings focus in (if there is anything focusable), and from then every UIKey goes to the UI until Escape or a click elsewhere. A control focused by mouse click does not capture keys. Gamepad buttons arrive as the same keys and bring focus without Tab.

Public functions

auto Route(const GGSnapshot* snapshot, const InputEvent& event, bool bAll = false) -> bool
True if the UI takes the key: queue it for the document and keep it from the game. With bAll, every key is the document's, focused or not (an editor has no game behind it).