diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-05-06 11:20:49 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2016-05-06 21:25:47 +0000 |
commit | 558c5c849cfd594c9e1cfb6edaffa0b524c852e9 (patch) | |
tree | 676a6a99e32679caa177746643cc744bd14d63ac /src/widgets/accessible/qaccessiblewidget.cpp | |
parent | ee516381873857e833b53b175fd3c40e4c45a5fd (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.cpp | 10 |
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; } /*! |