orca r3956 - in trunk: . src/orca
- From: wwalker svn gnome org
- To: svn-commits-list gnome org
- Subject: orca r3956 - in trunk: . src/orca
- Date: Wed, 4 Jun 2008 13:36:21 +0000 (UTC)
Author: wwalker
Date: Wed Jun 4 13:36:21 2008
New Revision: 3956
URL: http://svn.gnome.org/viewvc/orca?rev=3956&view=rev
Log:
Fix for bug #435585 - Java ControlPanel GIVING UP AFTER 5 TRIES.
Modified:
trunk/ChangeLog
trunk/src/orca/focus_tracking_presenter.py
trunk/src/orca/settings.py
Modified: trunk/src/orca/focus_tracking_presenter.py
==============================================================================
--- trunk/src/orca/focus_tracking_presenter.py (original)
+++ trunk/src/orca/focus_tracking_presenter.py Wed Jun 4 13:36:21 2008
@@ -672,6 +672,8 @@
- e: an at-spi event.
"""
+ asyncMode = settings.asyncMode
+
if settings.debugEventQueue:
if self._enqueueEventCount:
debug.println(debug.LEVEL_ALL,
@@ -744,6 +746,16 @@
debug.println(debug.LEVEL_ALL,
"---------> QUEUEING EVENT %s" % e.type)
+ # Some toolkits (e.g., Java - see bug #531869) need to
+ # have their events processed immediately.
+ #
+ try:
+ if event.host_application.toolkitName \
+ in settings.synchronousToolkits:
+ asyncMode = False
+ except:
+ pass
+
if event:
if settings.debugEventQueue:
debug.println(debug.LEVEL_ALL,
@@ -760,7 +772,7 @@
if settings.debugEventQueue:
debug.println(debug.LEVEL_ALL,
" ...put complete")
- if settings.asyncMode and (not self._gidleId):
+ if asyncMode and (not self._gidleId):
if settings.gilSleepTime:
time.sleep(settings.gilSleepTime)
self._gidleId = gobject.idle_add(self._dequeueEvent)
@@ -773,7 +785,7 @@
debug.println(debug.LEVEL_ALL,
" ...released")
- if not settings.asyncMode:
+ if not asyncMode:
self._dequeueEvent()
if settings.debugEventQueue:
Modified: trunk/src/orca/settings.py
==============================================================================
--- trunk/src/orca/settings.py (original)
+++ trunk/src/orca/settings.py Wed Jun 4 13:36:21 2008
@@ -697,6 +697,14 @@
#
asyncMode = True
+# A list of toolkits whose events we need to process synchronously.
+# The only one right now is the Java toolkit (see bug #531869), but
+# we put this here to allow more toolkits to be more easily added
+# and for Java to be removed if issues with asynchronous processing
+# of its events are ever resolved.
+#
+synchronousToolkits = ["J2SE-access-bridge"]
+
# If True, we output debug information for the event queue. We
# use this in addition to log level to prevent debug logic from
# bogging down event handling.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]