From kde-commits Fri Dec 20 12:39:21 2002 From: =?utf-8?q?Dirk=20Mueller?= Date: Fri, 20 Dec 2002 12:39:21 +0000 To: kde-commits Subject: kdelibs/khtml/xml X-MARC-Message: https://marc.info/?l=kde-commits&m=104038802909801 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 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 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(evt)->detail() == 1 && it.current()->id == EventImpl::KHTML_ECMA_CLICK_EVENT) || - ( static_cast(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(evt)->detail() == 1 && current->id == EventImpl::KHTML_ECMA_CLICK_EVENT) || + ( static_cast(evt)->detail() > 1 && current->id == EventImpl::KHTML_ECMA_DBLCLICK_EVENT) ) ) + current->listener->handleEvent(ev); } }