Create new documentation structure
[profile/ivi/qtdeclarative.git] / src / quick / items / qquicktextinput.cpp
index 06a5726..a8d10f3 100644 (file)
@@ -68,7 +68,8 @@ DEFINE_BOOL_CONFIG_OPTION(qmlDisableDistanceField, QML_DISABLE_DISTANCEFIELD)
 /*!
     \qmlclass TextInput QQuickTextInput
     \inqmlmodule QtQuick 2
-    \ingroup qml-basic-visual-elements
+    \ingroup qtquick-visual
+    \ingroup qtquick-input
     \inherits Item
     \brief Displays an editable line of text
 
@@ -844,7 +845,7 @@ void QQuickTextInput::setAutoScroll(bool b)
 /*!
     \qmlclass IntValidator QIntValidator
     \inqmlmodule QtQuick 2
-    \ingroup qml-basic-visual-elements
+    \ingroup qtquick-text-utility
     \brief Defines a validator for integer values
 
     This element provides a validator for integer values.
@@ -907,7 +908,7 @@ void QQuickIntValidator::resetLocaleName()
 /*!
     \qmlclass DoubleValidator QDoubleValidator
     \inqmlmodule QtQuick 2
-    \ingroup qml-basic-visual-elements
+    \ingroup qtquick-text-utility
     \brief Defines a validator for non-integer numbers
 
     This element provides a validator for non-integer numbers.
@@ -1000,7 +1001,7 @@ void QQuickDoubleValidator::resetLocaleName()
 /*!
     \qmlclass RegExpValidator QRegExpValidator
     \inqmlmodule QtQuick 2
-    \ingroup qml-basic-visual-elements
+    \ingroup qtquick-text-utility
     \brief Provides a string validator
 
     This element provides a validator, which counts as valid any string which
@@ -1723,7 +1724,7 @@ QSGNode *QQuickTextInput::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData
         if (cursorNode != 0 && !isReadOnly()) {
             cursorNode->setRect(cursorRectangle());
 
-            if (!d->cursorVisible || (!d->m_blinkStatus && d->m_blinkPeriod > 0)) {
+            if (!d->cursorVisible || d->cursorItem || (!d->m_blinkStatus && d->m_blinkPeriod > 0)) {
                 d->hideCursor();
             } else {
                 d->showCursor();
@@ -3172,9 +3173,9 @@ void QQuickTextInputPrivate::processInputMethodEvent(QInputMethodEvent *event)
     m_textLayout.setAdditionalFormats(formats);
 
     updateDisplayText(/*force*/ true);
-    if (cursorPositionChanged) {
-        emitCursorPositionChanged();
-    } else if (m_preeditCursor != oldPreeditCursor || isGettingInput) {
+    if ((cursorPositionChanged && !emitCursorPositionChanged())
+            || m_preeditCursor != oldPreeditCursor
+            || isGettingInput) {
         q->updateCursorRectangle();
     }
 
@@ -3995,6 +3996,7 @@ void QQuickTextInput::timerEvent(QTimerEvent *event)
     } else if (event->timerId() == d->m_passwordEchoTimer.timerId()) {
         d->m_passwordEchoTimer.stop();
         d->updateDisplayText();
+        updateCursorRectangle();
     }
 }