[orca] Don't return early when we get caret-moved event from empty editable objects



commit 44ac85e4882bb17026f55501e5e331e39fb5323d
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Mon Apr 27 11:33:48 2020 -0400

    Don't return early when we get caret-moved event from empty editable objects
    
    From user debugging output, it appears that Thunderbird/Gecko will emit
    caret-moved events for objects which have zero characters. Arguably this
    doesn't make sense: If the caret supposedly moved to the first character
    in an element, there is a first character in the element and thus the
    element should have a character count. But Gecko's text implementation is
    pretty broken, so try to be more forgiving.

 src/orca/scripts/web/script.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
---
diff --git a/src/orca/scripts/web/script.py b/src/orca/scripts/web/script.py
index 5c6878b70..80d0f1255 100644
--- a/src/orca/scripts/web/script.py
+++ b/src/orca/scripts/web/script.py
@@ -1561,8 +1561,9 @@ class Script(default.Script):
             self._presentTextAtNewCaretPosition(event)
             return True
 
-        if not self.utilities.queryNonEmptyText(event.source):
-            msg = "WEB: Event ignored: Was for object we're treating as textless"
+        if not self.utilities.queryNonEmptyText(event.source) \
+           and not event.source.getState().contains(pyatspi.STATE_EDITABLE):
+            msg = "WEB: Event ignored: Was for non-editable object we're treating as textless"
             debug.println(debug.LEVEL_INFO, msg, True)
             return True
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]