summaryrefslogtreecommitdiffstats
path: root/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
diff options
context:
space:
mode:
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.cpp29
1 files changed, 27 insertions, 2 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 3ba3d117e..cd8fc54b9 100644
--- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
+++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
@@ -219,18 +219,33 @@ void RenderWidgetHostViewQtDelegateQuick::focusOutEvent(QFocusEvent *event)
void RenderWidgetHostViewQtDelegateQuick::mousePressEvent(QMouseEvent *event)
{
- if (!m_isPopup && (parentItem() && parentItem()->property("activeFocusOnPress").toBool()))
+ QQuickItem *parent = parentItem();
+ if (!m_isPopup && (parent && parent->property("activeFocusOnPress").toBool()))
forceActiveFocus();
+ if (parent && !parent->property("activeFocusOnPress").toBool() && !parent->hasActiveFocus()) {
+ event->ignore();
+ return;
+ }
m_client->forwardEvent(event);
}
void RenderWidgetHostViewQtDelegateQuick::mouseMoveEvent(QMouseEvent *event)
{
+ QQuickItem *parent = parentItem();
+ if (parent && !parent->property("activeFocusOnPress").toBool() && !parent->hasActiveFocus()) {
+ event->ignore();
+ return;
+ }
m_client->forwardEvent(event);
}
void RenderWidgetHostViewQtDelegateQuick::mouseReleaseEvent(QMouseEvent *event)
{
+ QQuickItem *parent = parentItem();
+ if (parent && !parent->property("activeFocusOnPress").toBool() && !parent->hasActiveFocus()) {
+ event->ignore();
+ return;
+ }
m_client->forwardEvent(event);
}
@@ -251,14 +266,24 @@ void RenderWidgetHostViewQtDelegateQuick::wheelEvent(QWheelEvent *event)
void RenderWidgetHostViewQtDelegateQuick::touchEvent(QTouchEvent *event)
{
+ QQuickItem *parent = parentItem();
if (event->type() == QEvent::TouchBegin && !m_isPopup
- && (parentItem() && parentItem()->property("activeFocusOnPress").toBool()))
+ && (parent && parent->property("activeFocusOnPress").toBool()))
forceActiveFocus();
+ if (parent && !parent->property("activeFocusOnPress").toBool() && !parent->hasActiveFocus()) {
+ event->ignore();
+ return;
+ }
m_client->forwardEvent(event);
}
void RenderWidgetHostViewQtDelegateQuick::hoverMoveEvent(QHoverEvent *event)
{
+ QQuickItem *parent = parentItem();
+ if (parent && !parent->property("activeFocusOnPress").toBool() && !parent->hasActiveFocus()) {
+ event->ignore();
+ return;
+ }
m_client->forwardEvent(event);
}