diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/webengine/webpage.cpp | 29 | ||||
| -rw-r--r-- | src/webengine/webpage.h | 1 | 
3 files changed, 31 insertions, 0 deletions
| diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 44823df..c326c4b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -63,6 +63,7 @@ target_link_libraries(poi  target_compile_definitions(poi      PRIVATE QTBUG_65223_WORKAROUND +    PRIVATE QTBUG_68224_WORKAROUND  )  install(TARGETS poi RUNTIME DESTINATION bin CONFIGURATIONS Release) 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 <QMessageBox>  #include <QWebEngineFullScreenRequest> +#include <QLayout> +  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; diff --git a/src/webengine/webpage.h b/src/webengine/webpage.h index 92c5925..2232d26 100644 --- a/src/webengine/webpage.h +++ b/src/webengine/webpage.h @@ -19,6 +19,7 @@ public:  protected:      bool certificateError(const QWebEngineCertificateError &certificateError) override; +    bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame) override;  private slots:      void featurePermissionDialog(const QUrl &securityOrigin, QWebEnginePage::Feature feature); | 
