From 51cfe177a122ab51ecebcb84d922b5096b85cc4e Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Sun, 8 Apr 2012 17:53:53 +0200
Subject: [PATCH] ability for a plugin to raise NodeProcessed

---
 src/common/ged.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/common/ged.py b/src/common/ged.py
index 72920f05e..0d8766c1f 100644
--- a/src/common/ged.py
+++ b/src/common/ged.py
@@ -27,6 +27,7 @@ Global Events Dispatcher module.
 
 import traceback
 
+from common.xmpp import NodeProcessed
 import logging
 log = logging.getLogger('gajim.c.ged')
 
@@ -86,11 +87,16 @@ class GlobalEventsDispatcher(object):
     def raise_event(self, event_name, *args, **kwargs):
         log.debug('%s\nArgs: %s'%(event_name, str(args)))
         if event_name in self.handlers:
+            node_processed = False
             for priority, handler in self.handlers[event_name]:
                 try:
                     if handler(*args, **kwargs):
                         return True
+                except NodeProcessed:
+                    node_processed = True
                 except Exception, e:
                     log.error('Error while running an even handler: %s' % \
                         handler)
                     traceback.print_exc()
+            if node_processed:
+                raise NodeProcessed
-- 
GitLab