Modify so that unnecessary hover events do not occur when the device is touch. 08/294108/3
authorjoogab.yun <joogab.yun@samsung.com>
Tue, 13 Jun 2023 07:56:37 +0000 (16:56 +0900)
committerjoogab.yun <joogab.yun@samsung.com>
Tue, 13 Jun 2023 08:36:11 +0000 (17:36 +0900)
On touch down the MOTION -> STARTED event received at the same time.
In this case, unnecessary hoverEvent may be triggered by the MOTION event.
So, in case of touch device, it is ignored.

Change-Id: Idad7ba7e890c85180772f244b6ca42da2591ba85

dali/integration-api/events/touch-event-combiner.cpp

index 6a5ebc8..9aa64a8 100644 (file)
@@ -85,6 +85,7 @@ TouchEventCombiner::EventDispatchType TouchEventCombiner::GetNextTouchEvent(cons
   TouchEventCombiner::EventDispatchType dispatchEvent(TouchEventCombiner::DISPATCH_NONE);
   const PointState::Type                state    = point.GetState();
   const int                             deviceId = point.GetDeviceId();
+  const Device::Class::Type             deviceType = point.GetDeviceClass();
 
   switch(state)
   {
@@ -250,7 +251,9 @@ TouchEventCombiner::EventDispatchType TouchEventCombiner::GetNextTouchEvent(cons
       }
 
       // Dispatch hover event if no previous down event received or the motion event comes from a new device ID
-      if(mPressedPoints.empty() || fromNewDeviceId)
+      // On touch down the MOTION -> STARTED event received at the same time. In this case, unnecessary hoverEvent may be triggered by the MOTION event.
+      // So, in case of touch device, it is ignored.
+      if((mPressedPoints.empty() || fromNewDeviceId) && deviceType != Device::Class::Type::TOUCH)
       {
         hoverEvent.time = time;