diff options
author | Anu Aliyas <anu.aliyas@qt.io> | 2023-12-15 13:37:19 +0100 |
---|---|---|
committer | Anu Aliyas <anu.aliyas@qt.io> | 2023-12-20 15:51:32 +0100 |
commit | 5654e6c45c4c0aee8d2d6f4e344b4c8c9dd3d74e (patch) | |
tree | a11b30e3894971aa2f5694d78e082173cf2fd7b1 /src/webenginewidgets/api | |
parent | 19915aa4b598bc11c988b6f6fa04f1061a6aaa3f (diff) |
Forward unhandled mouse wheel events to the parent widget
- All mouse wheel events are forwarded to Chromium.
- Forward unhandled wheel events by Chromium to the parent widget.
- Impersonated QSpontaneKeyEvent in Qt WebEngine to set
spontaneous flag and forwarded the event as spontaneous.
Fixes: QTBUG-118398
Pick-to: 6.7 6.6 6.5
Change-Id: I4ec831b0077edc3d833fdd7ae8d31a5535b0c05b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'src/webenginewidgets/api')
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index 8d88726fa..65474506c 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -68,6 +68,14 @@ #include <QThread> #endif +QT_BEGIN_NAMESPACE +class QSpontaneKeyEvent +{ +public: + static inline void makeSpontaneous(QEvent *ev) { ev->setSpontaneous(); } +}; +QT_END_NAMESPACE + namespace QtWebEngineCore { class WebEngineQuickWidget : public QQuickWidget, public WidgetDelegate { @@ -172,6 +180,14 @@ public: return root->windowHandle(); return nullptr; } + void unhandledWheelEvent(QWheelEvent *ev) override + { + auto parentWidget = QQuickWidget::parentWidget(); + if (parentWidget) { + QSpontaneKeyEvent::makeSpontaneous(ev); + qApp->notify(parentWidget, ev); + } + } protected: void closeEvent(QCloseEvent *event) override |