aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickwidgets
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@digia.com>2014-05-21 10:49:07 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-21 12:35:21 +0200
commit7c1ee572770bdac445eb6a647b6a82a7dc2da407 (patch)
tree23c52ce27a555eec3fe95a13146d08e28aea36b9 /src/quickwidgets
parent7ccdf8d11675e963b70b565e421309e09c019343 (diff)
Focus event fix for QQuickWidget
Relay focus in/out events to the offscreen QQuickWindow, and also make the offscreen window believe it has the focus when the render window has it. Task-number: QTBUG-39033 Change-Id: Ib50b134e635833ad3813693ca272f04607c525b8 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Diffstat (limited to 'src/quickwidgets')
-rw-r--r--src/quickwidgets/qquickwidget.cpp14
-rw-r--r--src/quickwidgets/qquickwidget.h3
2 files changed, 17 insertions, 0 deletions
diff --git a/src/quickwidgets/qquickwidget.cpp b/src/quickwidgets/qquickwidget.cpp
index e20e5f22ab..7e31c271f4 100644
--- a/src/quickwidgets/qquickwidget.cpp
+++ b/src/quickwidgets/qquickwidget.cpp
@@ -941,6 +941,20 @@ void QQuickWidget::wheelEvent(QWheelEvent *e)
}
#endif
+
+void QQuickWidget::focusInEvent(QFocusEvent * event)
+{
+ Q_D(QQuickWidget);
+ d->offscreenWindow->focusInEvent(event);
+}
+
+void QQuickWidget::focusOutEvent(QFocusEvent * event)
+{
+ Q_D(QQuickWidget);
+ d->offscreenWindow->focusOutEvent(event);
+}
+
+
/*! \reimp */
bool QQuickWidget::event(QEvent *e)
{
diff --git a/src/quickwidgets/qquickwidget.h b/src/quickwidgets/qquickwidget.h
index 81e9af02fb..4287933063 100644
--- a/src/quickwidgets/qquickwidget.h
+++ b/src/quickwidgets/qquickwidget.h
@@ -120,6 +120,9 @@ protected:
virtual void showEvent(QShowEvent *);
virtual void hideEvent(QHideEvent *);
+ virtual void focusInEvent(QFocusEvent * event);
+ virtual void focusOutEvent(QFocusEvent * event);
+
#ifndef QT_NO_WHEELEVENT
virtual void wheelEvent(QWheelEvent *);
#endif