Commit 8c9881f9 authored by Siye Liu's avatar Siye Liu Committed by Commit Bot

Fix several issues in TSF support on Windows.

This CL fixes two issues with the TSF support on windows.
1. Add TS_SS_TRANSITORY flag to the return value of TsfTextStore::GetStatus.
  By adding the flag, Korean reconversion feature is disabled. User can only
  do conversion during composition. Editing frameworks may not support Korean
  reconversion by design.

2. Fix Japanese IME implicit commit on draft.js framework.
  Editing frameworks like draft.js may manage their own selection during
  composition. We should not set selection after inserting composition text
  during composition.

Bug: 657623
Change-Id: Ic9fb3d9187b2a1228807b15132e20e3227bf1de8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1504035
Commit-Queue: Siye Liu <siliu@microsoft.com>
Reviewed-by: default avatarYohei Yukawa <yukawa@chromium.org>
Cr-Commit-Position: refs/heads/master@{#638356}
parent 19646b4d
...@@ -219,7 +219,8 @@ STDMETHODIMP TSFTextStore::GetStatus(TS_STATUS* status) { ...@@ -219,7 +219,8 @@ STDMETHODIMP TSFTextStore::GetStatus(TS_STATUS* status) {
status->dwDynamicFlags = 0; status->dwDynamicFlags = 0;
// We don't support hidden text. // We don't support hidden text.
status->dwStaticFlags = TS_SS_NOHIDDENTEXT; // TODO(IME): Remove TS_SS_TRANSITORY to support Korean reconversion
status->dwStaticFlags = TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT;
return S_OK; return S_OK;
} }
...@@ -1201,7 +1202,6 @@ void TSFTextStore::CommitTextAndEndCompositionIfAny(size_t old_size, ...@@ -1201,7 +1202,6 @@ void TSFTextStore::CommitTextAndEndCompositionIfAny(size_t old_size,
const base::string16& new_committed_string = string_buffer_document_.substr( const base::string16& new_committed_string = string_buffer_document_.substr(
new_committed_string_offset, new_committed_string_size); new_committed_string_offset, new_committed_string_size);
text_input_client_->InsertText(new_committed_string); text_input_client_->InsertText(new_committed_string);
text_input_client_->SetEditableSelectionRange(selection_);
} }
} }
......
...@@ -387,7 +387,8 @@ TEST_F(TSFTextStoreTest, GetStatusTest) { ...@@ -387,7 +387,8 @@ TEST_F(TSFTextStoreTest, GetStatusTest) {
TS_STATUS status = {}; TS_STATUS status = {};
EXPECT_EQ(S_OK, text_store_->GetStatus(&status)); EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_EQ(0u, status.dwDynamicFlags); EXPECT_EQ(0u, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags); EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
status.dwStaticFlags);
} }
TEST_F(TSFTextStoreTest, QueryInsertTest) { TEST_F(TSFTextStoreTest, QueryInsertTest) {
......
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