From 2c90973ebfd1ce61b4815bcef8a9ffc19f309f1a Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@qt.io>
Date: Fri, 6 May 2016 11:23:25 +0200
Subject: [PATCH] QAccessibleMenuItem: Implement
 QAccessibleInterface::window().

The window is required to be able to determine the correct
scale factor for the screen when High DPI scaling is active.

Change-Id: I8f776684396d055754093f62e0d33bd7e23cb52b
Task-number: QTBUG-52943
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
---
 src/widgets/accessible/qaccessiblemenu.cpp | 14 ++++++++++++++
 src/widgets/accessible/qaccessiblemenu_p.h |  2 ++
 2 files changed, 16 insertions(+)

diff --git a/src/widgets/accessible/qaccessiblemenu.cpp b/src/widgets/accessible/qaccessiblemenu.cpp
index a0a7852851d..106f7244640 100644
--- a/src/widgets/accessible/qaccessiblemenu.cpp
+++ b/src/widgets/accessible/qaccessiblemenu.cpp
@@ -225,6 +225,20 @@ QObject *QAccessibleMenuItem::object() const
     return m_action;
 }
 
+/*! \reimp */
+QWindow *QAccessibleMenuItem::window() const
+{
+    QWindow *result = Q_NULLPTR;
+    if (!m_owner.isNull()) {
+        result = m_owner->windowHandle();
+        if (!result) {
+            if (const QWidget *nativeParent = m_owner->nativeParentWidget())
+                result = nativeParent->windowHandle();
+        }
+    }
+    return result;
+}
+
 QRect QAccessibleMenuItem::rect() const
 {
     QRect rect;
diff --git a/src/widgets/accessible/qaccessiblemenu_p.h b/src/widgets/accessible/qaccessiblemenu_p.h
index b42c852ff19..c51597bf1f2 100644
--- a/src/widgets/accessible/qaccessiblemenu_p.h
+++ b/src/widgets/accessible/qaccessiblemenu_p.h
@@ -108,6 +108,8 @@ public:
     QAccessibleInterface *parent() const Q_DECL_OVERRIDE;
     QAccessibleInterface *child(int index) const Q_DECL_OVERRIDE;
     QObject * object() const Q_DECL_OVERRIDE;
+    QWindow *window() const Q_DECL_OVERRIDE;
+
     QRect rect() const Q_DECL_OVERRIDE;
     QAccessible::Role role() const Q_DECL_OVERRIDE;
     void setText(QAccessible::Text t, const QString & text) Q_DECL_OVERRIDE;
-- 
GitLab