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.");
//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;
//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);