Author: johannes
Date: 2006-12-15 04:18:39 -0600 (Fri, 15 Dec 2006)
New Revision: 9168
Modified:
trunk/gnue-common/src/events/EventController.py
Log:
Really stop handler execution if an event has been dropped.
This fixes the focus-change when pressing Enter in a multiline entry
Modified: trunk/gnue-common/src/events/EventController.py
===================================================================
--- trunk/gnue-common/src/events/EventController.py 2006-12-15 08:06:48 UTC
(rev 9167)
+++ trunk/gnue-common/src/events/EventController.py 2006-12-15 10:18:39 UTC
(rev 9168)
@@ -146,12 +146,15 @@
if not isinstance(event, Event):
event = Event(event, *args, **kwargs)
+ methods = []
for key in ('__before__', event.__event__, '__after__'):
- for handler in registered_events.get(key, ()):
- handler(event)
- if event.__error__ or event.__dropped__:
- break
+ methods.extend(registered_events.get(key, []))
+ for handler in methods:
+ handler(event)
+ if event.__error__ or event.__dropped__:
+ break
+
if event.__after__:
for args, kwargs in event.__after__:
self.dispatch_event(*args, **kwargs)
_______________________________________________
commit-gnue mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/commit-gnue