diff options
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbintegration.cpp | 11 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbintegration.h | 2 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp index fc8f37cebe..2249446242 100644 --- a/src/plugins/platforms/xcb/qxcbintegration.cpp +++ b/src/plugins/platforms/xcb/qxcbintegration.cpp @@ -173,9 +173,6 @@ QXcbIntegration::QXcbIntegration(const QStringList ¶meters, int &argc, char m_fontDatabase.reset(new QGenericUnixFontDatabase()); m_inputContext.reset(QPlatformInputContextFactory::create()); -#if !defined(QT_NO_ACCESSIBILITY) && !defined(QT_NO_ACCESSIBILITY_ATSPI_BRIDGE) - m_accessibility.reset(new QSpiAccessibleBridge()); -#endif } QXcbIntegration::~QXcbIntegration() @@ -333,6 +330,14 @@ QPlatformInputContext *QXcbIntegration::inputContext() const #ifndef QT_NO_ACCESSIBILITY QPlatformAccessibility *QXcbIntegration::accessibility() const { +#if !defined(QT_NO_ACCESSIBILITY_ATSPI_BRIDGE) + if (!m_accessibility) { + Q_ASSERT_X(QCoreApplication::eventDispatcher(), "QXcbIntegration", + "Initializing accessibility without event-dispatcher!"); + m_accessibility.reset(new QSpiAccessibleBridge()); + } +#endif + return m_accessibility.data(); } #endif diff --git a/src/plugins/platforms/xcb/qxcbintegration.h b/src/plugins/platforms/xcb/qxcbintegration.h index fd63fba5bf..008d03fbcb 100644 --- a/src/plugins/platforms/xcb/qxcbintegration.h +++ b/src/plugins/platforms/xcb/qxcbintegration.h @@ -114,7 +114,7 @@ private: QScopedPointer<QPlatformInputContext> m_inputContext; #ifndef QT_NO_ACCESSIBILITY - QScopedPointer<QPlatformAccessibility> m_accessibility; + mutable QScopedPointer<QPlatformAccessibility> m_accessibility; #endif QScopedPointer<QPlatformServices> m_services; |