X-Git-Url: http://git.maemo.org/git/?p=googlelatitude;a=blobdiff_plain;f=latitude.qml%2Fmain.cpp;fp=latitude.qml%2Fmain.cpp;h=f430c4b315019dcc5ab8f25aa5f077f431eeaba2;hp=bce7fda63ecb1b822b491016dd9ae8b172af6064;hb=913f2f5465da25223c88a0fcad5a3d59ef305200;hpb=d6ca84a22913afba0f0d1f3ea93a834e3a9d26fa diff --git a/latitude.qml/main.cpp b/latitude.qml/main.cpp index bce7fda..f430c4b 100644 --- a/latitude.qml/main.cpp +++ b/latitude.qml/main.cpp @@ -1,6 +1,28 @@ #include +#include #include "qml.h" +class EventFilter : public QObject { +protected: + bool eventFilter(QObject *obj, QEvent *event) { + QInputContext *ic = qApp->inputContext(); + if (ic) { + if (ic->focusWidget() == 0 && prevFocusWidget) { + QEvent closeSIPEvent(QEvent::CloseSoftwareInputPanel); + ic->filterEvent(&closeSIPEvent); + } else if (prevFocusWidget == 0 && ic->focusWidget()) { + QEvent openSIPEvent(QEvent::RequestSoftwareInputPanel); + ic->filterEvent(&openSIPEvent); + } + prevFocusWidget = ic->focusWidget(); + } + return QObject::eventFilter(obj,event); + } + +private: + QWidget *prevFocusWidget; +}; + int main(int argc, char *argv[]) { qDebug() << "* Main QML"; QCoreApplication::setOrganizationName("linfati.com"); @@ -10,6 +32,8 @@ int main(int argc, char *argv[]) { QApplication lu(argc, argv); LatitudeQML mygui; + EventFilter ef; + mygui.installEventFilter(&ef); mygui.showFullScreen(); return lu.exec();