diff options
4 files changed, 14 insertions, 4 deletions
diff --git a/src/platformsupport/inputmethods/ibus/qibusplatforminputcontext.cpp b/src/platformsupport/inputmethods/ibus/qibusplatforminputcontext.cpp index 55c0c4b249..4bfd41cf14 100644 --- a/src/platformsupport/inputmethods/ibus/qibusplatforminputcontext.cpp +++ b/src/platformsupport/inputmethods/ibus/qibusplatforminputcontext.cpp @@ -89,6 +89,11 @@ QIBusPlatformInputContext::~QIBusPlatformInputContext (void) delete d; } +bool QIBusPlatformInputContext::isValid() const +{ + return d->valid; +} + void QIBusPlatformInputContext::mouseHandler (int x, QMouseEvent *event) { QPlatformInputContext::mouseHandler (x, event); diff --git a/src/platformsupport/inputmethods/ibus/qibusplatforminputcontext.h b/src/platformsupport/inputmethods/ibus/qibusplatforminputcontext.h index 6912fe4c20..74f7da8d41 100644 --- a/src/platformsupport/inputmethods/ibus/qibusplatforminputcontext.h +++ b/src/platformsupport/inputmethods/ibus/qibusplatforminputcontext.h @@ -53,6 +53,8 @@ public: QIBusPlatformInputContext(); ~QIBusPlatformInputContext(); + bool isValid() const; + void mouseHandler(int x, QMouseEvent *event); void reset(void); void update(void); diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp index 3053cba81e..e97b9f2121 100644 --- a/src/plugins/platforms/xcb/qxcbintegration.cpp +++ b/src/plugins/platforms/xcb/qxcbintegration.cpp @@ -99,10 +99,14 @@ QXcbIntegration::QXcbIntegration(const QStringList ¶meters) m_fontDatabase = new QGenericUnixFontDatabase(); m_nativeInterface = new QXcbNativeInterface; -#if defined(XCB_USE_IBUS) - m_inputContext = new QIBusPlatformInputContext; -#else m_inputContext = 0; +#if defined(XCB_USE_IBUS) + QIBusPlatformInputContext *context = new QIBusPlatformInputContext; + if (context->isValid()) { + m_inputContext = context; + } else { + delete context; + } #endif } diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.cpp b/src/plugins/platforms/xcb/qxcbkeyboard.cpp index adaed53106..6f37c078a1 100644 --- a/src/plugins/platforms/xcb/qxcbkeyboard.cpp +++ b/src/plugins/platforms/xcb/qxcbkeyboard.cpp @@ -49,7 +49,6 @@ #include <private/qguiapplication_p.h> #include <stdio.h> -#define XCB_USE_IBUS #if defined(XCB_USE_IBUS) #include "QtPlatformSupport/qibusplatforminputcontext.h" #endif |