[orca] Fix for bgo#588774 - Tooltips aren't always presented



commit 314d7119ea330bf0e1452417bb0f3afdf6333f47
Author: Willie Walker <william walker sun com>
Date:   Fri Jul 17 12:27:50 2009 -0400

    Fix for bgo#588774 - Tooltips aren't always presented

 src/orca/default.py                  |    6 ++--
 src/orca/focus_tracking_presenter.py |   35 +++++++++++++++------------------
 src/orca/orca-setup.glade            |    4 +-
 src/orca/orca_gui_prefs.py           |    8 +++---
 src/orca/settings.py                 |   12 +++++-----
 5 files changed, 31 insertions(+), 34 deletions(-)
---
diff --git a/src/orca/default.py b/src/orca/default.py
index 83e1d00..783174b 100644
--- a/src/orca/default.py
+++ b/src/orca/default.py
@@ -2553,7 +2553,7 @@ class Script(script.Script):
 
         return alertAndDialogCount
 
-    def presentTooltip(self, obj):
+    def presentToolTip(self, obj):
         """
         Speaks the tooltip for the current object of interest.
         """
@@ -2579,7 +2579,7 @@ class Script(script.Script):
             speechResult = self.whereAmI.getWhereAmI(obj, True)
             brailleResult = speechResult[0]
         debug.println(debug.LEVEL_FINEST,
-                      "presentTooltip: text='%s'" % speechResult)
+                      "presentToolTip: text='%s'" % speechResult)
         if speechResult:
             speech.speak(speechResult)
         if brailleResult:
@@ -3892,7 +3892,7 @@ class Script(script.Script):
             obj = event.source
             if event.type.startswith("object:state-changed:showing"):
                 if event.detail1 == 1:
-                    self.presentTooltip(obj)
+                    self.presentToolTip(obj)
                 elif orca_state.locusOfFocus \
                     and isinstance(orca_state.lastInputEvent,
                                    input_event.KeyboardEvent) \
diff --git a/src/orca/focus_tracking_presenter.py b/src/orca/focus_tracking_presenter.py
index 708ba7a..d417cc8 100644
--- a/src/orca/focus_tracking_presenter.py
+++ b/src/orca/focus_tracking_presenter.py
@@ -497,27 +497,24 @@ class FocusTrackingPresenter(presentation_manager.PresentationManager):
         #
         try:
             if event.source.getRole() == pyatspi.ROLE_TOOL_TIP:
-                # Check that it's okay to present tool tips. Always present
-                # tooltips initiated by the user pressing Control-F1 on the
-                # keyboard.
-                #
-                if isinstance(orca_state.lastInputEvent, \
-                              input_event.KeyboardEvent):
-                    if not orca_state.lastNonModifierKeyEvent.event_string \
-                                                                     == "F1":
-                        return
-
-                    # Mouse move events don't update orca_state.lastInputEvent
-                    # so it's possible the user accidentally nudged the
-                    # mouse and generated another tooltip event. If the
-                    # current time minus the last keyboard event time is
-                    # greater than 0.2 seconds, than just ignore this tooltip
-                    # event.
+                if settings.presentToolTips:
+                    pass
+                elif isinstance(orca_state.lastInputEvent, \
+                                input_event.KeyboardEvent) \
+                     and orca_state.lastNonModifierKeyEvent.event_string \
+                         == "F1":
+                    # Always present tooltips initiated by the user
+                    # pressing Control-F1 on the keyboard.  Mouse move
+                    # events don't update orca_state.lastInputEvents,
+                    # however, so it's possible the user accidentally
+                    # nudged the mouse after pressing F1 and generated
+                    # another tooltip event. If the current time minus
+                    # the last keyboard event time is greater than 0.5
+                    # seconds, than just ignore this tooltip event.
                     #
-                    currentTime =  time.time()
-                    if (currentTime - orca_state.lastInputEvent.time) > 0.2:
+                    if (time.time() - orca_state.lastInputEvent.time) > 0.5:
                         return
-                elif not settings.presentToolTips:
+                else:
                     return
         except:
             pass
diff --git a/src/orca/orca-setup.glade b/src/orca/orca-setup.glade
index edae6e3..de3209e 100644
--- a/src/orca/orca-setup.glade
+++ b/src/orca/orca-setup.glade
@@ -282,7 +282,7 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkCheckButton" id="presentTooltipsCheckButton">
+		    <widget class="GtkCheckButton" id="presentToolTipsCheckButton">
 		      <property name="visible">True</property>
 		      <property name="can_focus">True</property>
 		      <property name="label" translatable="yes">_Present tooltips</property>
@@ -292,7 +292,7 @@
 		      <property name="active">False</property>
 		      <property name="inconsistent">False</property>
 		      <property name="draw_indicator">True</property>
-		      <signal name="toggled" handler="presentTooltipsChecked" last_modification_time="Wed, 09 May 2007 00:18:20 GMT"/>
+		      <signal name="toggled" handler="presentToolTipsChecked" last_modification_time="Wed, 09 May 2007 00:18:20 GMT"/>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
diff --git a/src/orca/orca_gui_prefs.py b/src/orca/orca_gui_prefs.py
index cdf25df..74cd864 100644
--- a/src/orca/orca_gui_prefs.py
+++ b/src/orca/orca_gui_prefs.py
@@ -1901,7 +1901,7 @@ class OrcaSetupGUI(orca_glade.GladeWrapper):
                         prefs["showMainWindow"])
         self.get_widget("confirmQuitCheckButton").set_active( \
                         prefs["quitOrcaNoConfirmation"])
-        self.get_widget("presentTooltipsCheckButton").set_active( \
+        self.get_widget("presentToolTipsCheckButton").set_active( \
             prefs["presentToolTips"] and settings.canPresentToolTips)
 
         self.disableKeyGrabPref = settings.isGKSUGrabDisabled()
@@ -3780,10 +3780,10 @@ class OrcaSetupGUI(orca_glade.GladeWrapper):
 
         self.prefsDict["quitOrcaNoConfirmation"] = widget.get_active()
 
-    def presentTooltipsChecked(self, widget):
+    def presentToolTipsChecked(self, widget):
         """Signal handler for the "toggled" signal for the
-           presentTooltipsCheckButton GtkCheckButton widget.
-           The user has [un]checked the 'Present Tooltips'
+           presentToolTipsCheckButton GtkCheckButton widget.
+           The user has [un]checked the 'Present ToolTips'
            checkbox. Set the 'presentToolTips'
            preference to the new value if the user can present tooltips.
 
diff --git a/src/orca/settings.py b/src/orca/settings.py
index 536ca53..e2d2bac 100644
--- a/src/orca/settings.py
+++ b/src/orca/settings.py
@@ -54,12 +54,6 @@ try:
     screenWidth = _screen.get_width()
     screenHeight = _screen.get_height()
 
-    # We want to know what the tty is so we can send it to BrlAPI
-    # if possible.
-    #
-    (atom, format, data) = _root_window.property_get("XFree86_VT")
-    tty = data[0]
-
     # The bug that caused gnome-panel to crash is fixed in GTK 2.10.11.
     minimum_gtk_version = (100000 * 2) + \
                           (1000 * 10) + \
@@ -68,6 +62,12 @@ try:
                            (1000 * gtk.gtk_version[1]) + \
                             gtk.gtk_version[2]
     canPresentToolTips = (current_gtk_version >= minimum_gtk_version)
+
+    # We want to know what the tty is so we can send it to BrlAPI
+    # if possible.
+    #
+    (atom, format, data) = _root_window.property_get("XFree86_VT")
+    tty = data[0]
 except:
     pass
 



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