#include <QtGui/QApplication>
+#include <QtGui/QInputContext>
#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");
QApplication lu(argc, argv);
LatitudeQML mygui;
+ EventFilter ef;
+ mygui.installEventFilter(&ef);
mygui.showFullScreen();
return lu.exec();