diff options
author | Oleg Yadrov <oleg.yadrov@qt.io> | 2017-04-17 11:47:26 -0400 |
---|---|---|
committer | Oleg Yadrov <oleg.yadrov@qt.io> | 2017-04-25 16:03:03 +0000 |
commit | 0685dffb9275613e06f47e1d07643e55eeff56d9 (patch) | |
tree | 43023906df8cd3363f7f6843ad7d0824d1ae10a6 | |
parent | f7f8f8f6c12b8617b4d9f89dd2aaaf241a1a6f8e (diff) |
Make WebView receive active focus on forceActiveFocus() call
This logic was simply missed.
Task-number: QTBUG-60150
Change-Id: Id2e744a524823ca25b3ab42b76c8729c22e817b9
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
-rw-r--r-- | src/webview/qquickwebview.cpp | 8 | ||||
-rw-r--r-- | src/webview/qquickwebview_p.h | 1 | ||||
-rw-r--r-- | src/webview/qwebview_webengine.cpp | 6 | ||||
-rw-r--r-- | src/webview/qwebview_webengine_p.h | 1 |
4 files changed, 16 insertions, 0 deletions
diff --git a/src/webview/qquickwebview.cpp b/src/webview/qquickwebview.cpp index d760564..16559cf 100644 --- a/src/webview/qquickwebview.cpp +++ b/src/webview/qquickwebview.cpp @@ -291,6 +291,14 @@ void QQuickWebView::runJavaScriptPrivate(const QString &script, int callbackId) m_webView->runJavaScriptPrivate(script, callbackId); } +void QQuickWebView::itemChange(ItemChange change, const ItemChangeData &value) +{ + if (change == QQuickItem::ItemActiveFocusHasChanged) { + m_webView->setFocus(value.boolValue); + } + QQuickItem::itemChange(change, value); +} + void QQuickWebView::onRunJavaScriptResult(int id, const QVariant &variant) { if (id == -1) diff --git a/src/webview/qquickwebview_p.h b/src/webview/qquickwebview_p.h index 3d1a432..6534815 100644 --- a/src/webview/qquickwebview_p.h +++ b/src/webview/qquickwebview_p.h @@ -103,6 +103,7 @@ Q_SIGNALS: void loadProgressChanged(); protected: + void itemChange(ItemChange change, const ItemChangeData &value) Q_DECL_OVERRIDE; void runJavaScriptPrivate(const QString& script, int callbackId) Q_DECL_OVERRIDE; diff --git a/src/webview/qwebview_webengine.cpp b/src/webview/qwebview_webengine.cpp index e7d09e2..6ea9872 100644 --- a/src/webview/qwebview_webengine.cpp +++ b/src/webview/qwebview_webengine.cpp @@ -147,6 +147,12 @@ void QWebEngineWebViewPrivate::setVisible(bool visible) m_webEngineView->setVisible(visible); } +void QWebEngineWebViewPrivate::setFocus(bool focus) +{ + if (focus) + m_webEngineView->forceActiveFocus(); +} + int QWebEngineWebViewPrivate::loadProgress() const { return m_webEngineView->loadProgress(); diff --git a/src/webview/qwebview_webengine_p.h b/src/webview/qwebview_webengine_p.h index 623b455..16dd773 100644 --- a/src/webview/qwebview_webengine_p.h +++ b/src/webview/qwebview_webengine_p.h @@ -81,6 +81,7 @@ public: void setGeometry(const QRect &geometry) Q_DECL_OVERRIDE; void setVisibility(QWindow::Visibility visibility) Q_DECL_OVERRIDE; void setVisible(bool visible) Q_DECL_OVERRIDE; + void setFocus(bool focus) Q_DECL_OVERRIDE; public Q_SLOTS: void goBack() Q_DECL_OVERRIDE; |