diff options
author | Pierre Rossi <pierre.rossi@theqtcompany.com> | 2015-04-29 14:55:28 +0200 |
---|---|---|
committer | Pierre Rossi <pierre.rossi@theqtcompany.com> | 2015-06-03 13:50:04 +0000 |
commit | 8d9623c005c073f102097adcc1555fe93555b359 (patch) | |
tree | 6f93a841d5f9ec6c199129b9b0038e327d097125 /src/webengine/render_widget_host_view_qt_delegate_quick.cpp | |
parent | 76635345d96413944b81f5cf3d0f3dffa0a7b743 (diff) |
QQuickWebEngineView: add activeFocusOnPress property
This allows to use a WebEngineView to make a UI element that should not
get focus, which can be useful inthe case of hybrid UIs.
[ChangeLog][QtWebEngineQML][QQuickWebEngineView] Add activeFocusOnPress
Change-Id: I0666f81badd135db0049e0dd7b0fc30d0765b1c9
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'src/webengine/render_widget_host_view_qt_delegate_quick.cpp')
-rw-r--r-- | src/webengine/render_widget_host_view_qt_delegate_quick.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp index ebf1acf27..9fc1ed3eb 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp +++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp @@ -64,10 +64,14 @@ RenderWidgetHostViewQtDelegateQuick::RenderWidgetHostViewQtDelegateQuick(RenderW void RenderWidgetHostViewQtDelegateQuick::initAsChild(WebContentsAdapterClient* container) { - QQuickWebEngineViewPrivate *viewPrivate = static_cast<QQuickWebEngineViewPrivate *>(container); - setParentItem(viewPrivate->q_func()); - setSize(viewPrivate->q_func()->boundingRect().size()); + QQuickWebEngineView *view = static_cast<QQuickWebEngineViewPrivate *>(container)->q_func(); + setParentItem(view); + setSize(view->boundingRect().size()); + // Focus on creation if the view accepts it + if (view->activeFocusOnPress()) + setFocus(true); m_initialized = true; + } void RenderWidgetHostViewQtDelegateQuick::initAsPopup(const QRect &r) @@ -195,7 +199,7 @@ void RenderWidgetHostViewQtDelegateQuick::focusOutEvent(QFocusEvent *event) void RenderWidgetHostViewQtDelegateQuick::mousePressEvent(QMouseEvent *event) { - if (!m_isPopup) + if (!m_isPopup && (parentItem() && parentItem()->property("activeFocusOnPress").toBool())) forceActiveFocus(); m_client->forwardEvent(event); } @@ -227,7 +231,8 @@ void RenderWidgetHostViewQtDelegateQuick::wheelEvent(QWheelEvent *event) void RenderWidgetHostViewQtDelegateQuick::touchEvent(QTouchEvent *event) { - if (event->type() == QEvent::TouchBegin && !m_isPopup) + if (event->type() == QEvent::TouchBegin && !m_isPopup + && (parentItem() && parentItem()->property("activeFocusOnPress").toBool())) forceActiveFocus(); m_client->forwardEvent(event); } |