[orca] Speak state changes in locking keys independent of key echo



commit a56676e2f94f31b4463a5a410e4fecc050a4dd26
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Tue Jan 3 07:28:37 2012 -0500

    Speak state changes in locking keys independent of key echo

 src/orca/input_event.py        |   10 +++++++---
 src/orca/orca-setup.ui         |   19 -------------------
 src/orca/orca_console_prefs.py |   18 ------------------
 src/orca/orca_gui_prefs.py     |    3 ---
 src/orca/settings.py           |   11 ++++++-----
 5 files changed, 13 insertions(+), 48 deletions(-)
---
diff --git a/src/orca/input_event.py b/src/orca/input_event.py
index cd6ccf8..60ff8f7 100644
--- a/src/orca/input_event.py
+++ b/src/orca/input_event.py
@@ -168,7 +168,9 @@ class KeyboardEvent(InputEvent):
             self.shouldEcho = settings.enableDiacriticalKeys
         elif self.isLockingKey():
             self.keyType = KeyboardEvent.TYPE_LOCKING
-            self.shouldEcho = settings.enableLockingKeys
+            self.shouldEcho = settings.presentLockingKeys
+            if self.shouldEcho == None:
+                self.shouldEcho = not settings.onlySpeakDisplayedText
         elif self.isPrintableKey():
             self.keyType = KeyboardEvent.TYPE_PRINTABLE
             self.shouldEcho = \
@@ -177,9 +179,11 @@ class KeyboardEvent(InputEvent):
             self.keyType = KeyboardEvent.TYPE_UNKNOWN
             self.shouldEcho = False
 
+        if not self.isLockingKey():
+            self.shouldEcho = self.shouldEcho and settings.enableKeyEcho
+
         # Never echo if the user doesn't want any echo, as defined by
         # preferences and whether or not we are in a password field.
-        self.shouldEcho = self.shouldEcho and settings.enableKeyEcho
         if self.shouldEcho:
             try:
                 role = orca_state.locusOfFocus.getRole()
@@ -387,7 +391,7 @@ class KeyboardEvent(InputEvent):
         if we presented the event. False if there was some reason the event
         was not worthy of presentation."""
 
-        if not self.shouldEcho:
+        if self.shouldEcho == False:
             return False
 
         orca_state.lastKeyEchoTime = time.time()
diff --git a/src/orca/orca-setup.ui b/src/orca/orca-setup.ui
index b24e0e9..bc18e34 100644
--- a/src/orca/orca-setup.ui
+++ b/src/orca/orca-setup.ui
@@ -2480,25 +2480,6 @@
                           </packing>
                         </child>
                         <child>
-                          <object class="GtkCheckButton" id="enableLockingKeysCheckButton">
-                            <property name="label" translatable="yes">Enable lockin_g keys</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">False</property>
-                            <property name="use_action_appearance">False</property>
-                            <property name="use_underline">True</property>
-                            <property name="xalign">0</property>
-                            <property name="draw_indicator">True</property>
-                            <signal name="toggled" handler="checkButtonToggled" swapped="no"/>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">2</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
                           <object class="GtkCheckButton" id="enableFunctionKeysCheckButton">
                             <property name="label" translatable="yes">Enable _function keys</property>
                             <property name="visible">True</property>
diff --git a/src/orca/orca_console_prefs.py b/src/orca/orca_console_prefs.py
index e3849f0..d7e38c8 100644
--- a/src/orca/orca_console_prefs.py
+++ b/src/orca/orca_console_prefs.py
@@ -365,7 +365,6 @@ def setupSpeech(prefsDict):
         prefsDict["enableKeyEcho"]       = False
         prefsDict["enablePrintableKeys"] = False
         prefsDict["enableModifierKeys"]  = False
-        prefsDict["enableLockingKeys"]   = False
         prefsDict["enableFunctionKeys"]  = False
         prefsDict["enableActionKeys"]    = False
 
@@ -407,23 +406,6 @@ def setupSpeech(prefsDict):
     stop = True
     while keyEcho and True:
         # Translators: this is in reference to key echo for
-        # Caps Lock, Num Lock, Scroll Lock, etc.
-        #
-        answer = sayAndPrint(_("Enable locking keys?  Enter y or n: "),
-                             stop,
-                             True,
-                             speechServerChoice,
-                             speechVoiceChoice)
-        try:
-            prefsDict["enableLockingKeys"] = checkYes(answer)
-            break
-        except:
-            stop = False
-            sayAndPrint(_("Please enter y or n."))
-
-    stop = True
-    while keyEcho and True:
-        # Translators: this is in reference to key echo for
         # the keys at the top of the keyboard.
         #
         answer = sayAndPrint(_("Enable function keys?  Enter y or n: "),
diff --git a/src/orca/orca_gui_prefs.py b/src/orca/orca_gui_prefs.py
index cb90b83..273fdb8 100644
--- a/src/orca/orca_gui_prefs.py
+++ b/src/orca/orca_gui_prefs.py
@@ -1710,8 +1710,6 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
                         prefs["enablePrintableKeys"])
         self.get_widget("enableModifierKeysCheckButton").set_active( \
                         prefs["enableModifierKeys"])
-        self.get_widget("enableLockingKeysCheckButton").set_active( \
-                        prefs["enableLockingKeys"])
         self.get_widget("enableFunctionKeysCheckButton").set_active( \
                         prefs["enableFunctionKeys"])
         self.get_widget("enableActionKeysCheckButton").set_active( \
@@ -1957,7 +1955,6 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
         enable = self.get_widget("keyEchoCheckButton").get_active()
         self.get_widget("enablePrintableKeysCheckButton").set_sensitive(enable)
         self.get_widget("enableModifierKeysCheckButton").set_sensitive(enable)
-        self.get_widget("enableLockingKeysCheckButton").set_sensitive(enable)
         self.get_widget("enableFunctionKeysCheckButton").set_sensitive(enable)
         self.get_widget("enableActionKeysCheckButton").set_sensitive(enable)
         self.get_widget("enableNavigationKeysCheckButton").set_sensitive(enable)
diff --git a/src/orca/settings.py b/src/orca/settings.py
index 29e2092..22b34c0 100644
--- a/src/orca/settings.py
+++ b/src/orca/settings.py
@@ -74,7 +74,6 @@ userCustomizableSettings = [
     "enableKeyEcho",
     "enablePrintableKeys",
     "enableModifierKeys",
-    "enableLockingKeys",
     "enableFunctionKeys",
     "enableActionKeys",
     "enableNavigationKeys",
@@ -416,10 +415,6 @@ enablePrintableKeys     = True
 #
 enableModifierKeys      = True
 
-# If True and key echo is enabled, echo Locking keys.
-#
-enableLockingKeys       = True
-
 # If True and key echo is enabled, echo Function keys.
 #
 enableFunctionKeys      = True
@@ -457,6 +452,12 @@ showMainWindow          = True
 #
 quitOrcaNoConfirmation  = False
 
+# If True, always present locking key state changes; if False, never present
+# locking key state changes. If None, make the decision based on Orca's normal
+# behavior.
+#
+presentLockingKeys = None
+
 # Whether the user wants tooltips presented or not.
 #
 presentToolTips = False



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