From 6938c0cece05fa25c3ce52d0377eba776d0354ff Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sat, 26 May 2018 16:15:49 +0200 Subject: QTBUG-68224 workaround --- src/webengine/webpage.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/webengine/webpage.cpp') diff --git a/src/webengine/webpage.cpp b/src/webengine/webpage.cpp index fe011b4..6fba97c 100644 --- a/src/webengine/webpage.cpp +++ b/src/webengine/webpage.cpp @@ -10,6 +10,8 @@ #include #include +#include + QString feature_toString(QWebEnginePage::Feature feature) { switch(feature) { @@ -70,6 +72,33 @@ bool WebPage::certificateError(const QWebEngineCertificateError &certificateErro return resp == QMessageBox::Ignore; } +bool WebPage::acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame) +{ + + /* Workaround for https://bugreports.qt.io/browse/QTBUG-68224 + * Only affects 5.11.0; should be fixed in 5.11.1 + */ +#ifdef QTBUG_68224_WORKAROUND + auto *layout = this->view()->layout(); + auto count = layout->count(); + + if(count > 1) { + for (int i = 0; i < count; ++i) { + auto *item = layout->itemAt(i); + if(item == nullptr) + continue; + auto *widget = item->widget(); + if(widget != this->view()->focusProxy()) { + //qDebug("Removing widget"); + layout->removeWidget(widget); + } + } + } +#endif + + return true; +} + void WebPage::featurePermissionDialog(const QUrl &securityOrigin, QWebEnginePage::Feature feature) { QMessageBox messageBox; -- cgit v1.2.1