[orca/570658] Cache keybinding info in the generator cache
- From: William Walker <wwalker src gnome org>
- To: svn-commits-list gnome org
- Subject: [orca/570658] Cache keybinding info in the generator cache
- Date: Tue, 23 Jun 2009 23:26:26 +0000 (UTC)
commit 5acee3e1d857cb193730a97ea3c34ee38ed8486f
Author: Willie Walker <william walker sun com>
Date: Tue Jun 23 13:12:48 2009 -0400
Cache keybinding info in the generator cache
src/orca/default.py | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/src/orca/default.py b/src/orca/default.py
index 80da462..6d45a6f 100644
--- a/src/orca/default.py
+++ b/src/orca/default.py
@@ -74,6 +74,7 @@ class Script(script.Script):
WORDS_RE = re.compile("(\W+)", re.UNICODE)
DISPLAYED_LABEL = 'displayedLabel'
DISPLAYED_TEXT = 'displayedText'
+ KEY_BINDING = 'keyBinding'
def __init__(self, app):
"""Creates a new script for the given application.
@@ -7050,9 +7051,16 @@ class Script(script.Script):
"""
try:
+ return self.generatorCache[self.KEY_BINDING][obj]
+ except:
+ if not self.generatorCache.has_key(self.KEY_BINDING):
+ self.generatorCache[self.KEY_BINDING] = {}
+
+ try:
action = obj.queryAction()
except NotImplementedError:
- return ["", "", ""]
+ self.generatorCache[self.KEY_BINDING][obj] = ["", "", ""]
+ return self.generatorCache[self.KEY_BINDING][obj]
# Action is a string in the format, where the mnemonic and/or
# accelerator can be missing.
@@ -7103,7 +7111,9 @@ class Script(script.Script):
debug.println(debug.LEVEL_FINEST, "default.getKeyBinding: " \
+ repr([mnemonic, fullShortcut, accelerator]))
- return [mnemonic, fullShortcut, accelerator]
+ self.generatorCache[self.KEY_BINDING][obj] = \
+ [mnemonic, fullShortcut, accelerator]
+ return self.generatorCache[self.KEY_BINDING][obj]
def getKnownApplications(self):
"""Retrieves the list of currently running apps for the desktop
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]