src/hbcore/vkbhosts/hbabstractvkbhost.cpp
changeset 2 06ff229162e9
parent 1 f7ac710697a9
child 5 627c4a0fd0e7
--- a/src/hbcore/vkbhosts/hbabstractvkbhost.cpp	Mon May 03 12:48:33 2010 +0300
+++ b/src/hbcore/vkbhosts/hbabstractvkbhost.cpp	Fri May 14 16:09:54 2010 +0300
@@ -149,6 +149,14 @@
 
         // Check whether the cursor rectangle is inside visible area.
         if (!visibleArea.contains(microFocus)) {
+            QRectF realEditorGeometry = editorGeometry;
+            realEditorGeometry.adjust(0.0, HbCursorLineMargin, 0.0, -HbCursorLineMargin);
+            if (!realEditorGeometry.contains(microFocus)) {
+                // A sanity check. If the microFocus rectangle is outside the editor
+                // bounding rect, don't do anything. The situation in editor widget is not
+                // up to date.
+                return false;
+            }
             // The cursor is outside the visible area. Figure out how much and
             // to which direction the container has to be moved.
             if (microFocus.bottom() <= visibleArea.top()) {
@@ -343,7 +351,6 @@
 
             mKeypadStatus = HbVkbHost::HbVkbStatusOpened;
             mCallback->keyboardOpened(q_ptr);
-            q_ptr->openFinished();
         }
     }
 }
@@ -617,14 +624,6 @@
 }
 
 /*!
-\reimp
-*/
-int HbAbstractVkbHost::priority() const
-{
-    return 0;
-}
-
-/*!
 This slot is called every time an animation frame is drawn.
 */
 void HbAbstractVkbHost::animValueChanged(qreal value)
@@ -643,46 +642,12 @@
         }
     }
 
-    if (d->mCallback) {
+    if (d->mCallback && d->mKeypad) {
         d->mCallback->keyboardAnimationFrame(HbVirtualKeyboard::HbVkbAnimOpen, value);
     }
 }
 
 /*!
-\deprecated HbAbstractVkbHost::openAnimValueChanged(qreal)
-    is deprecated.
-*/
-void HbAbstractVkbHost::openAnimValueChanged(qreal value)
-{
-    Q_UNUSED(value);
-}
-
-/*!
-\deprecated HbAbstractVkbHost::closeAnimValueChanged(qreal)
-    is deprecated.
-*/
-void HbAbstractVkbHost::closeAnimValueChanged(qreal value)
-{
-    Q_UNUSED(value);
-}
-
-/*!
-\deprecated HbAbstractVkbHost::openFinished()
-    is deprecated.
-*/
-void HbAbstractVkbHost::openFinished()
-{
-}
-
-/*!
-\deprecated HbAbstractVkbHost::closeFinished()
-    is deprecated.
-*/
-void HbAbstractVkbHost::closeFinished()
-{
-}
-
-/*!
 This slot is called when an animation sequence is completed.
 */
 void HbAbstractVkbHost::animationFinished()
@@ -750,14 +715,6 @@
 }
 
 /*!
-\reimp
-*/
-void HbAbstractVkbHost::preferredSizeChanged(const QSizeF& newSize)
-{
-    Q_UNUSED(newSize);
-}
-
-/*!
 This slot is connected to orientation change warning signal from the framework
 and notifies setting proxy. Notification will then be delivered through setting proxy to all the
 interested parties.