summaryrefslogtreecommitdiffstats
path: root/src/widgets/accessible/qaccessiblewidget.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2016-05-06 11:20:49 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2016-05-06 21:25:47 +0000
commit558c5c849cfd594c9e1cfb6edaffa0b524c852e9 (patch)
tree676a6a99e32679caa177746643cc744bd14d63ac /src/widgets/accessible/qaccessiblewidget.cpp
parentee516381873857e833b53b175fd3c40e4c45a5fd (diff)
QAccessibleWidget: Retrieve window from native parent widget.
Query the native parent widget if the widget does not have a window handle. The window is required to be able to determine the correct scale factor for the screen when High DPI scaling is active. Change-Id: Ibaf5e8e7b07327ea635d2f726acea76c2c95bda3 Task-number: QTBUG-52943 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Diffstat (limited to 'src/widgets/accessible/qaccessiblewidget.cpp')
-rw-r--r--src/widgets/accessible/qaccessiblewidget.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp
index 3a9422cc26..beff27ad64 100644
--- a/src/widgets/accessible/qaccessiblewidget.cpp
+++ b/src/widgets/accessible/qaccessiblewidget.cpp
@@ -206,8 +206,14 @@ bool QAccessibleWidget::isValid() const
/*! \reimp */
QWindow *QAccessibleWidget::window() const
{
- Q_ASSERT(widget());
- return widget()->windowHandle();
+ const QWidget *w = widget();
+ Q_ASSERT(w);
+ QWindow *result = w->windowHandle();
+ if (!result) {
+ if (const QWidget *nativeParent = w->nativeParentWidget())
+ result = nativeParent->windowHandle();
+ }
+ return result;
}
/*!