[vlc-devel] [PATCH 3/3] npapi: allow a Event Listener to subscribe to more than one event type

Sergey Radionov rsatom at gmail.com
Sat Dec 24 08:31:17 CET 2011


---
 npapi/vlcplugin_base.cpp |   19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/npapi/vlcplugin_base.cpp b/npapi/vlcplugin_base.cpp
index d4ed630..fbdff1f 100644
--- a/npapi/vlcplugin_base.cpp
+++ b/npapi/vlcplugin_base.cpp
@@ -279,18 +279,17 @@ bool EventObj::insert(const NPString &name, NPObject *listener, bool bubble)
     if( !event )
         return false;
 
-    lr_l::iterator iter;
-    for( iter = _llist.begin(); iter != _llist.end(); ++iter )
-        if( iter->listener() == listener && iter->bubble() == bubble )
-            break;
-
-    if( iter == _llist.end() )
-    {
-        _llist.push_back(Listener(event, listener, bubble));
-        return true;
+    for(lr_l::iterator iter = _llist.begin(); iter != _llist.end(); ++iter ){
+        if(iter->listener() == listener &&
+           event->libvlc_type == iter->event_type() &&
+           iter->bubble() == bubble)
+        {
+            return false;
+        }
     }
 
-    return false;
+    _llist.push_back(Listener(event, listener, bubble));
+    return true;
 }
 
 bool EventObj::remove(const NPString &name, NPObject *listener, bool bubble)
-- 
1.7.7.1.msysgit.0




More information about the vlc-devel mailing list