summaryrefslogtreecommitdiffstats
path: root/src/webengine/api/qquickwebengineview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r--src/webengine/api/qquickwebengineview.cpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 6522137a8..64c7f337e 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -187,13 +187,7 @@ void QQuickWebEngineViewPrivate::runFileChooser(FileChooserMode mode, const QStr
void QQuickWebEngineViewPrivate::passOnFocus(bool reverse)
{
Q_Q(QQuickWebEngineView);
- // In one direction we would pass forward the focus to RenderWidgetHostViewQtDelegateQuick(Painted),
- // which in return would forward the tab key event and therefore the focus back to the QQuickWebEngineView.
- // This is why we skip RenderWidgetHostViewQtDelegateQuick in the focus chain.
- QQuickItem* current = QQuickItemPrivate::nextPrevItemInTabFocusChain(q, !reverse);
- if (!qobject_cast<RenderWidgetHostViewQtDelegateQuick*>(current) && !qobject_cast<RenderWidgetHostViewQtDelegateQuickPainted*>(current))
- current = q;
- focusNextPrev(current, !reverse);
+ focusNextPrev(q, !reverse);
}
void QQuickWebEngineViewPrivate::titleChanged(const QString &title)
@@ -364,6 +358,10 @@ QQuickWebEngineView::QQuickWebEngineView(QQuickItem *parent)
Q_D(QQuickWebEngineView);
d->e->q_ptr = this;
d->adapter->initialize(d);
+
+ this->setFocus(true);
+ this->setActiveFocusOnTab(true);
+ this->setFlag(QQuickItem::ItemIsFocusScope);
}
QQuickWebEngineView::~QQuickWebEngineView()
@@ -472,6 +470,17 @@ void QQuickWebEngineView::setInspectable(bool enable)
d->adapter->enableInspector(enable);
}
+void QQuickWebEngineView::forceActiveFocus()
+{
+ Q_FOREACH (QQuickItem *child, childItems()) {
+ if (qobject_cast<RenderWidgetHostViewQtDelegateQuick *>(child)
+ || qobject_cast<RenderWidgetHostViewQtDelegateQuickPainted *>(child)) {
+ child->forceActiveFocus();
+ break;
+ }
+ }
+}
+
void QQuickWebEngineViewExperimental::setIsFullScreen(bool fullscreen)
{
d_ptr->m_isFullScreen = fullscreen;