summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Vihria <tomi.vihria@nokia.com>2011-07-11 13:06:21 +0300
committerTomi Vihria <tomi.vihria@nokia.com>2011-07-11 13:06:21 +0300
commitb05a513e1427dacc4c3de1b6d507616764248b96 (patch)
treeb04583de50302d7741b607694d58c7e784e90986
parent59b2938758ebf563bedf943ddd4636176ca8d15e (diff)
Backporting fix for QTBUG-18716
Provide internal API to avoid automatic translation of input widget There will be cases when client will want to disable splitview automatic view translation, so that keyboard is just brought on top of the application and no other actions happen. There will be no new public Qt GUI API to cover the cases (the public API will come from QML Components), but the implementation is done with new private API. Task-number: QTBUG-20171 Reviewed-by: Honglei Zhang
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_p.h1
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_s60.cpp10
-rw-r--r--src/gui/kernel/qt_s60_p.h2
-rw-r--r--src/s60installs/bwins/QtGuiu.def1
-rw-r--r--src/s60installs/eabi/QtGuiu.def1
5 files changed, 13 insertions, 2 deletions
diff --git a/src/gui/inputmethod/qcoefepinputcontext_p.h b/src/gui/inputmethod/qcoefepinputcontext_p.h
index 9fd27038a9..98570153b1 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_p.h
+++ b/src/gui/inputmethod/qcoefepinputcontext_p.h
@@ -170,6 +170,7 @@ private:
};
Q_GUI_EXPORT void qt_s60_setPartialScreenInputMode(bool enable);
+Q_GUI_EXPORT void qt_s60_setPartialScreenAutomaticTranslation(bool enable);
QT_END_NAMESPACE
diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
index 567f83b0d3..c3d293be98 100644
--- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
+++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp
@@ -95,6 +95,11 @@ Q_GUI_EXPORT void qt_s60_setPartialScreenInputMode(bool enable)
ic->update();
}
+Q_GUI_EXPORT void qt_s60_setPartialScreenAutomaticTranslation(bool enable)
+{
+ S60->partial_keyboardAutoTranslation = enable;
+}
+
QCoeFepInputContext::QCoeFepInputContext(QObject *parent)
: QInputContext(parent),
m_fepState(q_check_ptr(new CAknEdwinState)), // CBase derived object needs check on new
@@ -612,12 +617,13 @@ void QCoeFepInputContext::ensureFocusWidgetVisible(QWidget *widget)
widget->resize(widget->width(), splitViewRect.height() - windowTop);
}
- if (gv->scene()) {
+ if (gv->scene() && S60->partial_keyboardAutoTranslation) {
const QRectF microFocusRect = gv->scene()->inputMethodQuery(Qt::ImMicroFocus).toRectF();
gv->ensureVisible(microFocusRect);
}
} else {
- translateInputWidget();
+ if (S60->partial_keyboardAutoTranslation)
+ translateInputWidget();
}
if (alwaysResize)
diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h
index fccb44de29..35cea5faf1 100644
--- a/src/gui/kernel/qt_s60_p.h
+++ b/src/gui/kernel/qt_s60_p.h
@@ -153,6 +153,7 @@ public:
int menuBeingConstructed : 1;
int orientationSet : 1;
int partial_keyboard : 1;
+ int partial_keyboardAutoTranslation : 1;
int partialKeyboardOpen : 1;
int handleStatusPaneResizeNotifications : 1;
QApplication::QS60MainApplicationFactory s60ApplicationFactory; // typedef'ed pointer type
@@ -343,6 +344,7 @@ inline QS60Data::QS60Data()
menuBeingConstructed(0),
orientationSet(0),
partial_keyboard(0),
+ partial_keyboardAutoTranslation(1),
partialKeyboardOpen(0),
handleStatusPaneResizeNotifications(1),
s60ApplicationFactory(0)
diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index 9b70ee80c9..e9e58c879a 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -13113,4 +13113,5 @@ EXPORTS
?hasBCM2727@QSymbianGraphicsSystemEx@@SA_NXZ @ 13112 NONAME ; bool QSymbianGraphicsSystemEx::hasBCM2727(void)
?constImageRef@QVolatileImage@@QBEABVQImage@@XZ @ 13113 NONAME ; class QImage const & QVolatileImage::constImageRef(void) const
?toVolatileImage@QPixmapData@@UBE?AVQVolatileImage@@XZ @ 13114 NONAME ; class QVolatileImage QPixmapData::toVolatileImage(void) const
+ ?qt_s60_setPartialScreenAutomaticTranslation@@YAX_N@Z @ 13115 NONAME ; void qt_s60_setPartialScreenAutomaticTranslation(bool)
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index 0f9442d92e..939398baf0 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -12197,4 +12197,5 @@ EXPORTS
_ZTV24QSymbianGraphicsSystemEx @ 12196 NONAME
_ZNK11QPixmapData15toVolatileImageEv @ 12197 NONAME
_ZNK14QVolatileImage13constImageRefEv @ 12198 NONAME
+ _Z43qt_s60_setPartialScreenAutomaticTranslationb @ 12199 NONAME