aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPekka Vuorela <pekka.ta.vuorela@nokia.com>2011-12-05 17:03:18 +0200
committerQt by Nokia <qt-info@nokia.com>2011-12-20 13:36:16 +0100
commit9697e2af142a2c7751cdda5c5807c9fe74dee994 (patch)
tree28fa170db0728cd99198939db73cedbbb81ba834
parenta231d3c67acca174da7066b3457f4e31a5c8e506 (diff)
Make editors commit preedit themselves on losing focus
Change-Id: I1d42a8804068718c7347b4f652289f9724c25a3c Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
-rw-r--r--src/qtquick1/graphicsitems/qdeclarativetextinput.cpp4
-rw-r--r--src/quick/items/qquickcanvas.cpp4
-rw-r--r--src/quick/items/qquicktextinput.cpp5
3 files changed, 9 insertions, 4 deletions
diff --git a/src/qtquick1/graphicsitems/qdeclarativetextinput.cpp b/src/qtquick1/graphicsitems/qdeclarativetextinput.cpp
index e5fdcb2387..a0a0c956bc 100644
--- a/src/qtquick1/graphicsitems/qdeclarativetextinput.cpp
+++ b/src/qtquick1/graphicsitems/qdeclarativetextinput.cpp
@@ -1065,8 +1065,10 @@ void QDeclarative1TextInputPrivate::focusChanged(bool hasFocus)
q->setCursorVisible(hasFocus && scene && scene->hasFocus());
if(!hasFocus && control->passwordEchoEditing())
control->updatePasswordEchoEditing(false);//QWidgetLineControl sets it on key events, but doesn't deal with focus events
- if (!hasFocus)
+ if (!hasFocus) {
+ control->commitPreedit();
control->deselect();
+ }
QDeclarativeItemPrivate::focusChanged(hasFocus);
}
diff --git a/src/quick/items/qquickcanvas.cpp b/src/quick/items/qquickcanvas.cpp
index 0f281a3d1f..5fd8f93d84 100644
--- a/src/quick/items/qquickcanvas.cpp
+++ b/src/quick/items/qquickcanvas.cpp
@@ -383,7 +383,7 @@ void QQuickCanvasPrivate::setFocusInScope(QQuickItem *scope, QQuickItem *item, F
if (oldActiveFocusItem) {
#ifndef QT_NO_IM
- qApp->inputPanel()->commit();
+ qApp->inputPanel()->reset();
#endif
activeFocusItem = 0;
@@ -492,7 +492,7 @@ void QQuickCanvasPrivate::clearFocusInScope(QQuickItem *scope, QQuickItem *item,
Q_ASSERT(oldActiveFocusItem);
#ifndef QT_NO_IM
- qApp->inputPanel()->commit();
+ qApp->inputPanel()->reset();
#endif
activeFocusItem = 0;
diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp
index a114cafd31..b3387f532c 100644
--- a/src/quick/items/qquicktextinput.cpp
+++ b/src/quick/items/qquicktextinput.cpp
@@ -2004,8 +2004,11 @@ void QQuickTextInput::itemChange(ItemChange change, const ItemChangeData &value)
#endif
d->updatePasswordEchoEditing(false);//QQuickTextInputPrivate sets it on key events, but doesn't deal with focus events
}
- if (!hasFocus)
+
+ if (!hasFocus) {
+ d->commitPreedit();
d->deselect();
+ }
}
QQuickItem::itemChange(change, value);
}