From 054aa42421fc5a0d206b612d2e8f385b884ab12a Mon Sep 17 00:00:00 2001 From: "joogab.yun" Date: Thu, 4 Jan 2024 14:59:51 +0900 Subject: [PATCH] Touch and Hover event propagrated by geometry way.(3) Fix typos and improve some logic. Change-Id: I856b51f9263bea28d714178389b6963b6ccb4c0a --- dali/internal/event/events/touch-event-processor.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/dali/internal/event/events/touch-event-processor.cpp b/dali/internal/event/events/touch-event-processor.cpp index 15561ce..9472226 100644 --- a/dali/internal/event/events/touch-event-processor.cpp +++ b/dali/internal/event/events/touch-event-processor.cpp @@ -497,7 +497,7 @@ bool TouchEventProcessor::ProcessTouchEvent(const Integration::TouchEvent& event if(interceptedTouchActor) { Actor* touchConsumedActor(mLastConsumedActor.GetActor()); - if(touchConsumedActor) // If there is a consultative actor, send events only to the consultative actor. + if(touchConsumedActor) // If there is a consumed actor, send events only to the consumed actor. { RenderTask& currentRenderTaskImpl = *currentRenderTask.Get(); consumedActor = EmitTouchSignals(touchConsumedActor, currentRenderTaskImpl, touchEventImpl, primaryPointState, isGeometry); @@ -533,22 +533,17 @@ bool TouchEventProcessor::ProcessTouchEvent(const Integration::TouchEvent& event mLastRenderTask && mLastPrimaryPointState != PointState::FINISHED) { - std::list internalActorLists = mCandidateActorLists; - while(!internalActorLists.empty()) + std::list::reverse_iterator rIter = mCandidateActorLists.rbegin(); + for (; rIter != mCandidateActorLists.rend(); rIter++) { - Actor* actorImpl = internalActorLists.back(); - // Only emit the signal if the actor's touch signal has connections (or derived actor implementation requires touch). - if(actorImpl->GetTouchRequired()) - { - EmitTouchSignals(actorImpl, *mLastRenderTask.Get(), touchEventImpl, PointState::INTERRUPTED, isGeometry); - } - internalActorLists.pop_back(); + Actor* actorImpl(*rIter); + EmitTouchSignals(actorImpl, *mLastRenderTask.Get(), touchEventImpl, PointState::INTERRUPTED, isGeometry); } } } Actor* touchConsumedActor(mLastConsumedActor.GetActor()); - if(touchConsumedActor) // If there is a consultative actor, send events only to the consultative actor. + if(touchConsumedActor) // If there is a consumed actor, send events only to the consumed actor. { RenderTask& currentRenderTaskImpl = *currentRenderTask.Get(); consumedActor = EmitTouchSignals(touchConsumedActor, currentRenderTaskImpl, touchEventImpl, primaryPointState, isGeometry); -- 2.7.4