[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdelibs/khtml/xml
From:       Dirk Mueller <mueller () kde ! org>
Date:       2002-12-20 12:39:21
[Download RAW message or body]

CVS commit by mueller: 

make sure we don't loose the iterator's position when the registered event
listener change


  M +8 -8      dom_nodeimpl.cpp   1.196


--- kdelibs/khtml/xml/dom_nodeimpl.cpp  #1.195:1.196
@@ -689,14 +689,14 @@ void NodeImpl::handleLocalEvents(EventIm
         return;
 
-    QPtrListIterator<RegisteredEventListener> it(*m_regdListeners);
     Event ev = evt;
-    for (; it.current(); ++it) {
-        if (it.current()->id == evt->id() && it.current()->useCapture == useCapture)
-            it.current()->listener->handleEvent(ev);
+    for (QPtrListIterator<RegisteredEventListener> it(*m_regdListeners); \
it.current();) { +        RegisteredEventListener* current = it();
+        if (current->id == evt->id() && current->useCapture == useCapture)
+            current->listener->handleEvent(ev);
         // ECMA legacy hack
-        if (it.current()->useCapture == useCapture && evt->id() == \
                EventImpl::CLICK_EVENT &&
-            ( ( static_cast<MouseEventImpl*>(evt)->detail() == 1 && it.current()->id \
                == EventImpl::KHTML_ECMA_CLICK_EVENT) ||
-              ( static_cast<MouseEventImpl*>(evt)->detail() > 1 && it.current()->id \
                == EventImpl::KHTML_ECMA_DBLCLICK_EVENT) ) )
-            it.current()->listener->handleEvent(ev);
+        if (current->useCapture == useCapture && evt->id() == EventImpl::CLICK_EVENT \
&& +            ( ( static_cast<MouseEventImpl*>(evt)->detail() == 1 && current->id \
== EventImpl::KHTML_ECMA_CLICK_EVENT) || +              ( \
static_cast<MouseEventImpl*>(evt)->detail() > 1 && current->id == \
EventImpl::KHTML_ECMA_DBLCLICK_EVENT) ) ) +            \
current->listener->handleEvent(ev);  }
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic