SIGN IN SIGN UP

Fix FocusManager constructor (#75894)

The FocusManager constructor was registering global event handlers
on the shared RawKeyboard instance and the global pointer router.
This posed a few problems: (1) there was no way to unregister these
handlers, and (2) instantiating a second FocusManager would overwrite
the existing focus manager's RawKeyboard handler. This was manifesting
in unexpected ways, such as the fact that constructing a second
BuildOwner (for a parallel tree, for instance) was obliterating the
event handler for the main BuildOwner's focus manager, thus messing
with focus.

This change separates those global event registrations into a
dedicated method, registerGlobalHandlers(), and overrides dispose()
to properly unregister those handlers.
T
Todd Volkert committed
835c7fab4592f86f7db0cada78e5a8543ee179f2
Parent: db038a1
Committed by GitHub <noreply@github.com> on 2/13/2021, 1:19:20 AM