[orca] Adjust debugging output for input events



commit a6f39564805c7f8407279615db9603e48c7919ec
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Fri May 8 11:54:43 2020 -0400

    Adjust debugging output for input events

 src/orca/input_event.py | 44 ++++++++++++++++++++++++++++++++++++--------
 1 file changed, 36 insertions(+), 8 deletions(-)
---
diff --git a/src/orca/input_event.py b/src/orca/input_event.py
index 4c56d42a7..db0bc57a6 100644
--- a/src/orca/input_event.py
+++ b/src/orca/input_event.py
@@ -388,18 +388,42 @@ class KeyboardEvent(InputEvent):
         return False
 
     def __str__(self):
-        return ("KEYBOARD_EVENT:  type=%d\n" % self.type) \
-             + ("                 id=%d\n" % self.id) \
-             + ("                 hw_code=%d\n" % self.hw_code) \
-             + ("                 modifiers=%d\n" % self.modifiers) \
-             + ("                 event_string=(%s)\n" % self.event_string) \
-             + ("                 keyval_name=(%s)\n" % self.keyval_name) \
+        if self._shouldObscure():
+            keyid = hw_code = modifiers = event_string = keyval_name = key_type = "*"
+        else:
+            keyid = self.id
+            hw_code = self.hw_code
+            modifiers = self.modifiers
+            event_string = self.event_string
+            keyval_name = self.keyval_name
+            key_type = self.keyType
+
+        return ("KEYBOARD_EVENT:  type=%s\n" % self.type.value_name.upper()) \
+             + ("                 id=%s\n" % keyid) \
+             + ("                 hw_code=%s\n" % hw_code) \
+             + ("                 modifiers=%s\n" % modifiers) \
+             + ("                 event_string=(%s)\n" % event_string) \
+             + ("                 keyval_name=(%s)\n" % keyval_name) \
              + ("                 timestamp=%d\n" % self.timestamp) \
              + ("                 time=%f\n" % time.time()) \
-             + ("                 keyType=%s\n" % self.keyType) \
+             + ("                 keyType=%s\n" % key_type) \
              + ("                 clickCount=%s\n" % self._clickCount) \
              + ("                 shouldEcho=%s\n" % self.shouldEcho)
 
+    def _shouldObscure(self):
+        if not (self._obj and self._obj.getRole() == pyatspi.ROLE_PASSWORD_TEXT):
+            return False
+
+        if not self.isPrintableKey():
+            return False
+
+        if self.modifiers & keybindings.CTRL_MODIFIER_MASK \
+           or self.modifiers & keybindings.ALT_MODIFIER_MASK \
+           or self.modifiers & keybindings.ORCA_MODIFIER_MASK:
+            return False
+
+        return True
+
     def _isReleaseForLastNonModifierKeyEvent(self):
         last = orca_state.lastNonModifierKeyEvent
         if not last:
@@ -752,7 +776,11 @@ class KeyboardEvent(InputEvent):
         """Processes this input event."""
 
         startTime = time.time()
-        data = "'%s' (%d)" % (self.event_string, self.hw_code)
+        if not self._shouldObscure():
+            data = "'%s' (%d)" % (self.event_string, self.hw_code)
+        else:
+            data = "(obscured)"
+
         if self.is_duplicate:
             data = '%s DUPLICATE EVENT #%i' % (data, KeyboardEvent.duplicateCount)
 


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