nvda
006b80f6 - Fix a bug where menus would no longer speak after NVDA's event queue was flooded with items. Specifically the problem was that the event queue got full from a flooding of events, and then more events could not be added, but NVDA's pending event counters were still being updated. Thus when code asked if there were any pending events, it was saying yes even though there weren't any. This would have caused some code not to run, and also would have caused some memory leaks.

Commit
17 years ago
Fix a bug where menus would no longer speak after NVDA's event queue was flooded with items. Specifically the problem was that the event queue got full from a flooding of events, and then more events could not be added, but NVDA's pending event counters were still being updated. Thus when code asked if there were any pending events, it was saying yes even though there weren't any. This would have caused some code not to run, and also would have caused some memory leaks. Specific changes: *QueueHandler: do not place a limit on the event queue's size; previously it was only a size of 500. *queueHandler.queueFunction: remove unneeded code. As the queue has no limit in size we can safely put with out worrying if the queue is full. *eventHandler.queueEvent: update the pendingEvent counters after queueing the event just incase queueFunction causes an exception. This makes sure that pending event counts are not updated even though the event was not queued. *IAccessibleHandler.pumpAll: only process the last 500 win events fetched from the winEvent limiter. Any events before this are too far behind -- we were probably flooded with events.
Parents
Loading