diff --git a/src/controls/QskInputGrabber.cpp b/src/controls/QskInputGrabber.cpp index 1b5997b6..366313d4 100644 --- a/src/controls/QskInputGrabber.cpp +++ b/src/controls/QskInputGrabber.cpp @@ -157,16 +157,6 @@ bool QskInputGrabber::event( QEvent* event ) doBlock = isBlocking( ev->localPos() ); break; } - case QEvent::TouchBegin: - case QEvent::TouchUpdate: - case QEvent::TouchCancel: - { -#if 1 - // TODO - doBlock = true; -#endif - break; - } case QEvent::Wheel: { const auto ev = static_cast< QWheelEvent* > ( event ); diff --git a/src/controls/QskPopup.cpp b/src/controls/QskPopup.cpp index 9d57f2a9..64a0bafa 100644 --- a/src/controls/QskPopup.cpp +++ b/src/controls/QskPopup.cpp @@ -65,8 +65,7 @@ namespace { bool ok = Inherited::event( event ); - if ( event->type() == QEvent::MouseButtonPress - || event->type() == QEvent::TouchBegin ) + if ( event->type() == QEvent::MouseButtonPress ) { if ( auto popup = static_cast< QskPopup* >( parentItem() ) ) { @@ -167,7 +166,8 @@ QRectF QskPopup::overlayRect() const void QskPopup::updateInputGrabber() { - if ( isVisible() && ( isModal() || testPopupFlag( CloseOnPressOutside ) ) ) + if ( parentItem() && isVisible() + && ( isModal() || testPopupFlag( CloseOnPressOutside ) ) ) { if ( m_data->inputGrabber == nullptr ) { @@ -303,10 +303,6 @@ bool QskPopup::event( QEvent* event ) case QEvent::MouseMove: case QEvent::MouseButtonRelease: - case QEvent::TouchBegin: - case QEvent::TouchCancel: - case QEvent::TouchUpdate: - case QEvent::HoverEnter: case QEvent::HoverLeave: { @@ -319,6 +315,14 @@ bool QskPopup::event( QEvent* event ) } default: { + /* + Don't accept touch events otherwise we don't receive the + synthesized mouse events and need to handle both type of + events from now on. + But by accepting the mouse event propagation of the touch + events also stops. + */ + break; } }