Qt World Summit: Submit your Presentation

Touch not working in QtWebEngine after opening a DropDown menu

  • Hello everbody!

    I stumbled across a QtWebEngine problem while using a touch display. I can browse normally through websites via my touch display, but when I click on a DropDown menu (for example on https://www.ebay.com/ clicking on "All categories" next to the search field), touch is not working anymore (or 1/30 touch clicks works). I can still close it via mouse/keyboard. After closing the DropDown menu, touch is working again.

    I created a small example browser, there is nothing special in it:

    BrowserWidget::BrowserWidget(QWidget *parent)
        : QWidget(parent), ui(new Ui::BrowserWidget),
          m_webView(new QWebEngineView(this)), m_page(new QWebEnginePage(this)) {
    bool BrowserWidget::eventFilter(QObject *watched, QEvent *e) {
      qDebug() << "event: " << e->type();
      if (e->type() == QEvent::ChildAdded) {
        QChildEvent *ce = static_cast<QChildEvent *>(e);
        if (ce && ce->child()) {
      return false;

    I installed my event filter to the widgets in the QEvent::ChildAdded for a better debugging (so I can observe more events). When I close the DropDown with my mouse I get MouseButtonPress, FocusIn, ChildRemoved, ... events. But with touch I only get MouseButtonPress, nothing more.

    This behaviour is always reproducable and I don't know if I did something wrong, because I can operate the browser via touch. I also added the Qt::WA_AcceptTouchEvents to the child widgets or the BrowserWidget itself, but it didn't make any difference.

    I hope somebody of you can help me out, thank you!

  • It's a QT bug ( https://bugreports.qt.io/browse/QTBUG-79254 )

    If somebody every needs it again I implemented a workaround which I posted here: