[orca] Event Manager: Handle name/description change floods
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Event Manager: Handle name/description change floods
- Date: Mon, 8 Nov 2021 12:52:40 +0000 (UTC)
commit 8e863de81e6bb6cc758dc0fd4a6a9295ee5a90cb
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Mon Nov 8 13:48:58 2021 +0100
Event Manager: Handle name/description change floods
Mainly needed for web content during page (re)loads.
* Include name and description changes to the flood types we handle
* Use any busy-changed event as an opportunity to prune spammy events
* Check if pruning is needed during processing object events; not just
when enqueueing them
src/orca/event_manager.py | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
---
diff --git a/src/orca/event_manager.py b/src/orca/event_manager.py
index d68a916e5..79f100440 100644
--- a/src/orca/event_manager.py
+++ b/src/orca/event_manager.py
@@ -789,6 +789,8 @@ class EventManager:
"object:text-changed:insert:system",
"object:children-changed:add",
"object:children-changed:add:system",
+ "object:property-change:accessible-name",
+ "object:property-change:accessible-description",
"object:state-changed:showing",
"object:state-changed:sensitive"]
@@ -815,6 +817,8 @@ class EventManager:
"object:text-changed:insert:system",
"object:children-changed:add",
"object:children-changed:add:system",
+ "object:property-change:accessible-name",
+ "object:property-change:accessible-description",
"object:state-changed:showing",
"object:state-changed:sensitive"]
@@ -845,7 +849,7 @@ class EventManager:
return True
if event.type.startswith("object:state-changed:busy"):
- return not event.detail1
+ return True
return False
@@ -937,10 +941,15 @@ class EventManager:
debug.println(debug.LEVEL_INFO, msg, True)
return
- if self._inFlood() and not self._processDuringFlood(event):
- msg = 'EVENT MANAGER: Not processing this event due to flood.'
- debug.println(debug.LEVEL_INFO, msg, True)
- return
+ if self._inFlood():
+ if not self._processDuringFlood(event):
+ msg = 'EVENT MANAGER: Not processing this event due to flood.'
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return
+ if self._prioritizeDuringFlood(event):
+ msg = 'EVENT MANAGER: Pruning event queue due to flood.'
+ debug.println(debug.LEVEL_INFO, msg, True)
+ self._pruneEventsDuringFlood()
if eType.startswith('object:selection-changed') \
and event.source in self._parentsOfDefunctDescendants:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]