diff --git a/maliit-plugins-quick/input-method/minputmethodquick.cpp b/maliit-plugins-quick/input-method/minputmethodquick.cpp
index 6ee95fb..12f920d 100644
--- a/maliit-plugins-quick/input-method/minputmethodquick.cpp
+++ b/maliit-plugins-quick/input-method/minputmethodquick.cpp
@@ -44,6 +44,7 @@
#include <QGraphicsScene>
#include <QGraphicsObject>
#include <QDir>
+#include <QTimer>
#include <memory>
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
@@ -307,6 +308,7 @@ void MInputMethodQuick::show()
const QRegion r(inputMethodArea().toRect());
d->handleInputMethodAreaUpdate(inputMethodHost(), r);
d->syncInputMask();
+ QTimer::singleShot(100, this, SLOT(centerMouseOnKeyboard()));
}
}
@@ -323,6 +325,15 @@ void MInputMethodQuick::hide()
d->handleInputMethodAreaUpdate(inputMethodHost(), r);
}
+void MInputMethodQuick::centerMouseOnKeyboard()
+{
+ Q_D(MInputMethodQuick);
+ if(d->sipIsInhibited) {
+ return;
+ }
+ QCursor::setPos(d->inputMethodArea.center().x(), d->inputMethodArea.center().y());
+}
+
void MInputMethodQuick::handleAppOrientationChanged(int angle)
{
Q_D(MInputMethodQuick);
diff --git a/maliit-plugins-quick/input-method/minputmethodquick.h b/maliit-plugins-quick/input-method/minputmethodquick.h
index 862b0cf..02e3bac 100644
--- a/maliit-plugins-quick/input-method/minputmethodquick.h
+++ b/maliit-plugins-quick/input-method/minputmethodquick.h
@@ -152,6 +152,7 @@ private:
MInputMethodQuickPrivate *const d_ptr;
private Q_SLOTS:
+ void centerMouseOnKeyboard();
//! Propagates change to QML.
void onSentActionKeyAttributesChanged(const QString &keyId, const MKeyOverride::KeyOverrideAttributes changedAttributes);
};