From 50f0aeee770d4e23bb7466c6b5128f5d7dfe4590 Mon Sep 17 00:00:00 2001 From: Pekka Vuorela Date: Tue, 27 Sep 2011 14:36:56 +0300 Subject: Adapted most QInputContext usage on widgets to QInputPanel Including most of stuff excluding mouse event handling which differs between the classes. Change-Id: Iff1e56b9c50c3f84de2d1c43a3416a1952197a17 Reviewed-on: http://codereview.qt-project.org/5640 Reviewed-by: Qt Sanity Bot Reviewed-by: Lars Knoll --- src/widgets/kernel/qapplication.cpp | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) (limited to 'src/widgets/kernel/qapplication.cpp') diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 80223743b1..7550e7dec3 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -78,10 +78,6 @@ #include #endif -#if defined(Q_WS_X11) || defined(Q_OS_SYMBIAN) -#include "qinputcontextfactory.h" -#endif - #include "qguiplatformplugin_p.h" #include @@ -2054,16 +2050,13 @@ void QApplicationPrivate::setFocusWidget(QWidget *focus, Qt::FocusReason reason) focus_widget = focus; #ifndef QT_NO_IM if (prev && ((reason != Qt::PopupFocusReason && reason != Qt::MenuBarFocusReason - && prev->testAttribute(Qt::WA_InputMethodEnabled)) - // Do reset the input context, in case the new focus widget won't accept keyboard input - // or it is not created fully yet. - || (focus_widget && (!focus_widget->testAttribute(Qt::WA_InputMethodEnabled) - || !focus_widget->testAttribute(Qt::WA_WState_Created))))) { - QInputContext *qic = prev->inputContext(); - if(qic) { - qic->reset(); - qic->setFocusWidget(0); - } + && prev->testAttribute(Qt::WA_InputMethodEnabled)) + // Do reset the input context, in case the new focus widget won't accept keyboard input + // or it is not created fully yet. + || (focus_widget && (!focus_widget->testAttribute(Qt::WA_InputMethodEnabled) + || !focus_widget->testAttribute(Qt::WA_WState_Created))))) { + qApp->inputPanel()->commit(); + qApp->inputPanel()->setInputItem(0); } #endif //QT_NO_IM @@ -2092,11 +2085,10 @@ void QApplicationPrivate::setFocusWidget(QWidget *focus, Qt::FocusReason reason) } if(focus && QApplicationPrivate::focus_widget == focus) { #ifndef QT_NO_IM - if (focus->testAttribute(Qt::WA_InputMethodEnabled)) { - QInputContext *qic = focus->inputContext(); - if (qic && focus->testAttribute(Qt::WA_WState_Created) - && focus->isEnabled()) - qic->setFocusWidget(focus); + if (focus->testAttribute(Qt::WA_InputMethodEnabled) + && focus->testAttribute(Qt::WA_WState_Created) + && focus->isEnabled()) { + qApp->inputPanel()->setInputItem(focus); } #endif //QT_NO_IM QFocusEvent in(QEvent::FocusIn, reason); -- cgit v1.2.3