Commit 17840303 authored by Siye Liu's avatar Siye Liu Committed by Commit Bot

Fix an issue when inserting emoji into address bar.

Composition is started and ended in same edit session during emoji
insertion. Selection should also be set during |SetCompositionText|
in the above scenario so that |TextInputClient| such as |TextField|
can have updated cached selection.

Bug: 1111523
Change-Id: Ie2b1dc1365a1a778ea9cc5367f82bd2086cc0b94
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2331291Reviewed-by: default avatarYohei Yukawa <yukawa@chromium.org>
Reviewed-by: default avatarSiye Liu <siliu@microsoft.com>
Commit-Queue: Siye Liu <siliu@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#795055}
parent 563f6abf
......@@ -1392,6 +1392,8 @@ void TSFTextStore::CommitTextAndEndCompositionIfAny(size_t old_size,
CompositionText composition_text;
composition_text.text = new_committed_string;
composition_text.ime_text_spans = spans;
composition_text.selection.set_start(new_committed_string.size());
composition_text.selection.set_end(new_committed_string.size());
text_input_client_->SetCompositionText(composition_text);
}
text_input_client_->InsertText(new_committed_string);
......
......@@ -2561,6 +2561,7 @@ class RegressionTestCallback : public TSFTextStoreTestCallback {
void SetCompositionText4(const ui::CompositionText& composition) {
EXPECT_EQ(L"c", composition.text);
ASSERT_EQ(1u, composition.ime_text_spans.size());
ASSERT_EQ(gfx::Range(1, 1), composition.selection);
}
void InsertText4(const base::string16& text) { EXPECT_EQ(L"c", text); }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment