[orca] Fix regression from keyboard event refactor
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Fix regression from keyboard event refactor
- Date: Tue, 5 Apr 2016 16:23:11 +0000 (UTC)
commit 6318907cde7894d89529ce204dfc9fe66165c33a
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Tue Apr 5 12:22:42 2016 -0400
Fix regression from keyboard event refactor
src/orca/input_event.py | 31 +++++++++++++++++++++----------
1 files changed, 21 insertions(+), 10 deletions(-)
---
diff --git a/src/orca/input_event.py b/src/orca/input_event.py
index 6307f5c..07da06a 100644
--- a/src/orca/input_event.py
+++ b/src/orca/input_event.py
@@ -132,24 +132,32 @@ class KeyboardEvent(InputEvent):
KeyboardEvent.duplicateCount = 0
self.keyType = None
+
_isPressed = event.type == pyatspi.KEY_PRESSED_EVENT
+
+ try:
+ role = self._obj.getRole()
+ except:
+ role = None
+ _mayEcho = _isPressed or role == pyatspi.ROLE_TERMINAL
+
if self.isNavigationKey():
self.keyType = KeyboardEvent.TYPE_NAVIGATION
- self.shouldEcho = _isPressed and settings.enableNavigationKeys
+ self.shouldEcho = _mayEcho and settings.enableNavigationKeys
elif self.isActionKey():
self.keyType = KeyboardEvent.TYPE_ACTION
- self.shouldEcho = _isPressed and settings.enableActionKeys
+ self.shouldEcho = _mayEcho and settings.enableActionKeys
elif self.isModifierKey():
self.keyType = KeyboardEvent.TYPE_MODIFIER
- self.shouldEcho = _isPressed and settings.enableModifierKeys
+ self.shouldEcho = _mayEcho and settings.enableModifierKeys
if self.isOrcaModifier():
KeyboardEvent.orcaModifierPressed = _isPressed
elif self.isFunctionKey():
self.keyType = KeyboardEvent.TYPE_FUNCTION
- self.shouldEcho = _isPressed and settings.enableFunctionKeys
+ self.shouldEcho = _mayEcho and settings.enableFunctionKeys
elif self.isDiacriticalKey():
self.keyType = KeyboardEvent.TYPE_DIACRITICAL
- self.shouldEcho = _isPressed and settings.enableDiacriticalKeys
+ self.shouldEcho = _mayEcho and settings.enableDiacriticalKeys
elif self.isLockingKey():
self.keyType = KeyboardEvent.TYPE_LOCKING
self.shouldEcho = settings.presentLockingKeys
@@ -158,19 +166,19 @@ class KeyboardEvent(InputEvent):
self.shouldEcho = self.shouldEcho and _isPressed
elif self.isAlphabeticKey():
self.keyType = KeyboardEvent.TYPE_ALPHABETIC
- self.shouldEcho = _isPressed \
+ self.shouldEcho = _mayEcho \
and (settings.enableAlphabeticKeys or settings.enableEchoByCharacter)
elif self.isNumericKey():
self.keyType = KeyboardEvent.TYPE_NUMERIC
- self.shouldEcho = _isPressed \
+ self.shouldEcho = _mayEcho \
and (settings.enableNumericKeys or settings.enableEchoByCharacter)
elif self.isPunctuationKey():
self.keyType = KeyboardEvent.TYPE_PUNCTUATION
- self.shouldEcho = _isPressed \
+ self.shouldEcho = _mayEcho \
and (settings.enablePunctuationKeys or settings.enableEchoByCharacter)
elif self.isSpace():
self.keyType = KeyboardEvent.TYPE_SPACE
- self.shouldEcho = _isPressed \
+ self.shouldEcho = _mayEcho \
and (settings.enableSpace or settings.enableEchoByCharacter)
else:
self.keyType = KeyboardEvent.TYPE_UNKNOWN
@@ -572,11 +580,14 @@ class KeyboardEvent(InputEvent):
if not self._script:
return False, 'No active script'
- if self.is_duplicate or not self.isPressedKey():
+ if self.is_duplicate:
return self._should_consume, 'Consumed based on handler'
self._present()
+ if not self.isPressedKey():
+ return self._should_consume, 'Consumed based on handler'
+
if self.isOrcaModifier():
return True, 'Orca modifier'
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]