--- src/gui/kernel/qapplication_x11.cpp.orig 2013-11-11 03:07:31.000000000 +0400 +++ src/gui/kernel/qapplication_x11.cpp 2013-11-11 03:50:14.000000000 +0400 @@ -5338,7 +5338,7 @@ QWidget *w = childAt(QPoint(dev->event_x, dev->event_y)); if (!w) - return false; + w = this; if (tdi.directTouch) { qAppPriv->appTouchPoints.append(QTouchEvent::TouchPoint(trackingId)); @@ -5468,7 +5468,9 @@ } else if (event->evtype == XI_TouchUpdate) { tp->setState(Qt::TouchPointMoved | primary); QWidget *w = childAt(QPoint(dev->event_x, dev->event_y)); - if (!w || (!tdi.directTouch && qAppPriv->appTouchPoints.size() == 1 && !w->testAttribute(Qt::WA_TouchPadAcceptSingleTouchEvents))) + if (!w) + w = this; + if (!tdi.directTouch && qAppPriv->appTouchPoints.size() == 1 && !w->testAttribute(Qt::WA_TouchPadAcceptSingleTouchEvents)) send = false; } else if (event->evtype == XI_TouchEnd) { oldTouchPoints = qAppPriv->appTouchPoints;