[orca] Fix another false positive with clipboard messages
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Fix another false positive with clipboard messages
- Date: Tue, 22 Mar 2016 16:25:02 +0000 (UTC)
commit b812d17073672debccf2745a6b340f8b923fa6be
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Tue Mar 22 12:24:40 2016 -0400
Fix another false positive with clipboard messages
src/orca/script_utilities.py | 24 ++++++++++++++++++++++++
src/orca/scripts/default.py | 3 +++
src/orca/scripts/web/script_utilities.py | 18 +-----------------
3 files changed, 28 insertions(+), 17 deletions(-)
---
diff --git a/src/orca/script_utilities.py b/src/orca/script_utilities.py
index a2e0eb3..eeeeeb5 100644
--- a/src/orca/script_utilities.py
+++ b/src/orca/script_utilities.py
@@ -1832,6 +1832,30 @@ class Utilities:
return obj
+ def topLevelObjectIsActiveAndCurrent(self, obj=None):
+ obj = obj or orca_state.locusOfFocus
+
+ topLevel = self.topLevelObject(obj)
+ if not topLevel:
+ return False
+
+ topLevel.clearCache()
+ try:
+ state = topLevel.getState()
+ except:
+ msg = "ERROR: Exception getting state of topLevel %s" % topLevel
+ debug.println(debug.LEVEL_INFO, msg, True)
+ return False
+
+ if not state.contains(pyatspi.STATE_ACTIVE) \
+ or state.contains(pyatspi.STATE_DEFUNCT):
+ return False
+
+ if not self.isSameObject(topLevel, orca_state.activeWindow):
+ return False
+
+ return True
+
@staticmethod
def onSameLine(obj1, obj2, delta=0):
"""Determines if obj1 and obj2 are on the same line."""
diff --git a/src/orca/scripts/default.py b/src/orca/scripts/default.py
index 28f338e..e551bc2 100644
--- a/src/orca/scripts/default.py
+++ b/src/orca/scripts/default.py
@@ -2802,6 +2802,9 @@ class Script(script.Script):
if not self.utilities.objectContentsAreInClipboard():
return
+ if not self.utilities.topLevelObjectIsActiveAndCurrent():
+ return
+
if self.utilities.lastInputEventWasCopy():
self.presentMessage(messages.CLIPBOARD_COPIED_FULL, messages.CLIPBOARD_COPIED_BRIEF)
return
diff --git a/src/orca/scripts/web/script_utilities.py b/src/orca/scripts/web/script_utilities.py
index 318bcc6..66ad9bc 100644
--- a/src/orca/scripts/web/script_utilities.py
+++ b/src/orca/scripts/web/script_utilities.py
@@ -3049,23 +3049,7 @@ class Utilities(script_utilities.Utilities):
if not self.inDocumentContent():
return False
- topLevel = self.topLevelObject(orca_state.locusOfFocus)
- if not topLevel:
- return False
-
- topLevel.clearCache()
- try:
- state = topLevel.getState()
- except:
- msg = "WEB: Exception getting state of topLevel %s" % topLevel
- debug.println(debug.LEVEL_INFO, msg, True)
- return False
-
- if not state.contains(pyatspi.STATE_ACTIVE) \
- or state.contains(pyatspi.STATE_DEFUNCT):
- return False
-
- if not self.isSameObject(topLevel, orca_state.activeWindow):
+ if not self.topLevelObjectIsActiveAndCurrent():
return False
if 'Action' in pyatspi.listInterfaces(orca_state.locusOfFocus):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]