Braille input-event processing is extremely convoluted and should be brought into alignment with keyboard input-event processing
At a high-level, our keyboard input-event handling works like this:
- EventManager's
activate
registers its_processKeyboardEvent
as a watcher/handler - When we receive an event,
_processKeyboardEvent
callsKeyboardEvent.process
-
process
figures out the handler function and calls it
For braille, it works like this:
- orca.py calls braille.py's
init
with the callback oforca._processBrailleEvent
- When we receive an event,
braille._processBrailleEvent
callsorca._processBrailleEvent
-
orca._processBrailleEvent
calls EventManager'sprocessBrailleEvent
- EventManager's
processBrailleEvent
calls_enqueue
-
_dequeue
sends it along to EventManager's_processInputEvent
-
_processInputEvent
calls the script'sprocessBrailleEvent
- The script's
processBrailleEvent
figures out the handler function and calls it
I think we can remove some of the steps for braille, and move the steps that we keep into the same location as they are for keyboard events.