DSSeat: fix to set winX/winY for DSInputEvent::TouchMoveEvent 87/242787/1
authorSung-Jin Park <sj76.park@samsung.com>
Fri, 28 Aug 2020 08:40:05 +0000 (17:40 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Tue, 1 Sep 2020 01:29:50 +0000 (10:29 +0900)
Change-Id: Ifb2f9e83c9eae2746805ef360231c4258bdbb762
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
src/DSSeat/DSSeat.cpp

index 599d32b..ed929fa 100644 (file)
@@ -451,6 +451,10 @@ void DSSeat::__onPointerEvent(DSInputMouseEvent *ev)
 
 void DSSeat::__onTouchEvent(DSInputTouchEvent *ev)
 {
+       int winX;
+       int winY;
+       stPosition pos;
+
        if (__touch == nullptr)
        {
                DSLOG_DBG("DSSeat", "No touch device exists. Touch events will be dropped.");
@@ -467,10 +471,6 @@ void DSSeat::__onTouchEvent(DSInputTouchEvent *ev)
                //set the window as touch focus window
                if (window)
                {
-                       int winX;
-                       int winY;
-                       stPosition pos;
-
                        pos = window->getPosition();
                        winX = ev->getX() - pos.x;
                        winY = ev->getY() - pos.y;
@@ -482,6 +482,19 @@ void DSSeat::__onTouchEvent(DSInputTouchEvent *ev)
 
                //TODO : emit touch focus changed signal
        }
+       else if (ev->getType() == DSInputEvent::TouchMoveEvent)
+       {
+               auto window = __touch->getFocus();
+
+               if (window)
+               {
+                       pos = window->getPosition();
+                       winX = ev->getX() - pos.x;
+                       winY = ev->getY() - pos.y;
+                       ev->setWinX(winX);
+                       ev->setWinY(winY);
+               }
+       }
 
        __dswlSeat->setCurrentEventTime(ev->getTimestamp());
        __touch->processEvent(ev, nullptr);