summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp')
-rw-r--r--src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp b/src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp
index 23d1f75539..71b925357a 100644
--- a/src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp
+++ b/src/plugins/platforms/qnx/qqnxinputcontext_noimf.cpp
@@ -41,6 +41,8 @@
#include "qqnxinputcontext_noimf.h"
#include "qqnxabstractvirtualkeyboard.h"
+#include "qqnxintegration.h"
+#include "qqnxscreen.h"
#include <QtCore/QDebug>
#include <QtGui/QGuiApplication>
@@ -53,12 +55,14 @@
QT_BEGIN_NAMESPACE
-QQnxInputContext::QQnxInputContext(QQnxAbstractVirtualKeyboard &keyboard) :
+QQnxInputContext::QQnxInputContext(QQnxIntegration *integration, QQnxAbstractVirtualKeyboard &keyboard) :
QPlatformInputContext(),
m_inputPanelVisible(false),
m_inputPanelLocale(QLocale::c()),
+ m_integration(integration),
m_virtualKeyboard(keyboard)
{
+ connect(&keyboard, SIGNAL(heightChanged(int)), this, SLOT(keyboardHeightChanged()));
connect(&keyboard, SIGNAL(visibilityChanged(bool)), this, SLOT(keyboardVisibilityChanged(bool)));
connect(&keyboard, SIGNAL(localeChanged(QLocale)), this, SLOT(keyboardLocaleChanged(QLocale)));
keyboardVisibilityChanged(keyboard.isVisible());
@@ -105,6 +109,13 @@ bool QQnxInputContext::filterEvent( const QEvent *event )
}
+QRectF QQnxInputContext::keyboardRect() const
+{
+ QRect screenGeometry = m_integration->primaryDisplay()->geometry();
+ return QRectF(screenGeometry.x(), screenGeometry.height() - m_virtualKeyboard.height(),
+ screenGeometry.width(), m_virtualKeyboard.height());
+}
+
bool QQnxInputContext::handleKeyboardEvent(int flags, int sym, int mod, int scan, int cap)
{
Q_UNUSED(flags);
@@ -137,6 +148,11 @@ QLocale QQnxInputContext::locale() const
return m_inputPanelLocale;
}
+void QQnxInputContext::keyboardHeightChanged()
+{
+ emitKeyboardRectChanged();
+}
+
void QQnxInputContext::keyboardVisibilityChanged(bool visible)
{
qInputContextDebug() << Q_FUNC_INFO << "visible=" << visible;