summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios/qiosinputcontext.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/ios/qiosinputcontext.mm')
-rw-r--r--src/plugins/platforms/ios/qiosinputcontext.mm15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/plugins/platforms/ios/qiosinputcontext.mm b/src/plugins/platforms/ios/qiosinputcontext.mm
index 7937337e4a..89d210cb54 100644
--- a/src/plugins/platforms/ios/qiosinputcontext.mm
+++ b/src/plugins/platforms/ios/qiosinputcontext.mm
@@ -39,6 +39,7 @@
**
****************************************************************************/
+#include "qiosglobal.h"
#include "qiosinputcontext.h"
#include "qioswindow.h"
#include <QGuiApplication>
@@ -47,6 +48,7 @@
@public
QIOSInputContext *m_context;
BOOL m_keyboardVisible;
+ QRectF m_keyboardRect;
}
@end
@@ -80,6 +82,10 @@
{
CGRect frame;
[[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] getValue:&frame];
+
+ m_keyboardRect = fromPortraitToPrimary(fromCGRect(frame));
+ m_context->emitKeyboardRectChanged();
+
BOOL visible = CGRectIntersectsRect(frame, [UIScreen mainScreen].bounds);
if (m_keyboardVisible != visible) {
m_keyboardVisible = visible;
@@ -90,8 +96,8 @@
@end
QIOSInputContext::QIOSInputContext()
- : QPlatformInputContext(),
- m_keyboardListener([[QIOSKeyboardListener alloc] initWithQIOSInputContext:this])
+ : QPlatformInputContext()
+ , m_keyboardListener([[QIOSKeyboardListener alloc] initWithQIOSInputContext:this])
{
}
@@ -100,6 +106,11 @@ QIOSInputContext::~QIOSInputContext()
[m_keyboardListener release];
}
+QRectF QIOSInputContext::keyboardRect() const
+{
+ return m_keyboardListener->m_keyboardRect;
+}
+
void QIOSInputContext::showInputPanel()
{
if (isInputPanelVisible())