Revert "Remove TS_SS_TRANSITORY flag from TSF"
This reverts commit 5d66d2641816deb4aa942de069a7b2e0d6ee696f.
[email protected],[email protected]
(cherry picked from commit c581014e8ec5c7f5732fa4f6bf75649f88c625aa)
Bug: 1137267, 148355
Change-Id: Iba8a3cb59a12ddd4310849ee1cf877cb7ea8a019
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2471881
Commit-Queue: Anupam Snigdha <[email protected]>
Reviewed-by: Anupam Snigdha <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#817109}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2480885
Cr-Commit-Position: refs/branch-heads/4240@{#1259}
Cr-Branched-From: f297677702651916bbf65e59c0d4bbd4ce57d1ee-refs/heads/master@{#800218}
diff --git a/ui/base/ime/win/tsf_input_policy_unittest.cc b/ui/base/ime/win/tsf_input_policy_unittest.cc
index 0b4a3f9..ad602b7 100644
--- a/ui/base/ime/win/tsf_input_policy_unittest.cc
+++ b/ui/base/ime/win/tsf_input_policy_unittest.cc
@@ -268,19 +268,22 @@
TS_STATUS status = {};
EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
- EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
+ EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
+ status.dwStaticFlags);
}
TEST_F(TSFInputPanelTest, ManualInputPaneToAutomaticPolicyTest) {
TS_STATUS status = {};
EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
- EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
+ EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
+ status.dwStaticFlags);
// TODO(crbug.com/1031786): Change this test once this bug is fixed
fake_input_method_->ShowVirtualKeyboardIfEnabled();
EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
- EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
+ EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
+ status.dwStaticFlags);
}
// TODO(crbug.com/1031786): Enable this test this once this bug is fixed.
@@ -290,15 +293,18 @@
// and test if the automatic policy flag has been set or not.
EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
- EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
+ EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
+ status.dwStaticFlags);
fake_input_method_->ShowVirtualKeyboardIfEnabled();
EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_NE((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
- EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
+ EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
+ status.dwStaticFlags);
fake_input_method_->DetachTextInputClient(nullptr);
EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
- EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
+ EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
+ status.dwStaticFlags);
}
// TODO(crbug.com/1031786): Enable this test this once this bug is fixed.
@@ -309,25 +315,30 @@
// and test if the automatic policy flag has been set or not.
EXPECT_EQ(S_OK, text_store1_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
- EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
+ EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
+ status.dwStaticFlags);
fake_input_method_->ShowVirtualKeyboardIfEnabled();
EXPECT_EQ(S_OK, text_store1_->GetStatus(&status));
EXPECT_NE((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
- EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
+ EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
+ status.dwStaticFlags);
fake_input_method_->DetachTextInputClient(nullptr);
SwitchToDifferentTSFTextStore();
// Different TSFTextStore is in focus so manual policy should be set in the
// previous one
EXPECT_EQ(S_OK, text_store1_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
- EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
+ EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
+ status.dwStaticFlags);
EXPECT_EQ(S_OK, text_store2_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
- EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
+ EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
+ status.dwStaticFlags);
fake_input_method_->ShowVirtualKeyboardIfEnabled();
EXPECT_EQ(S_OK, text_store2_->GetStatus(&status));
EXPECT_NE((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
- EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
+ EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT),
+ status.dwStaticFlags);
}
} // namespace
diff --git a/ui/base/ime/win/tsf_text_store.cc b/ui/base/ime/win/tsf_text_store.cc
index b5450a74..1eafee4 100644
--- a/ui/base/ime/win/tsf_text_store.cc
+++ b/ui/base/ime/win/tsf_text_store.cc
@@ -250,7 +250,8 @@
// status->dwDynamicFlags &= ~TS_SD_INPUTPANEMANUALDISPLAYENABLE;
status->dwDynamicFlags |= TS_SD_INPUTPANEMANUALDISPLAYENABLE;
// 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;
}
diff --git a/ui/base/ime/win/tsf_text_store_unittest.cc b/ui/base/ime/win/tsf_text_store_unittest.cc
index 25db5d4..06ca415 100644
--- a/ui/base/ime/win/tsf_text_store_unittest.cc
+++ b/ui/base/ime/win/tsf_text_store_unittest.cc
@@ -394,7 +394,8 @@
TS_STATUS status = {};
EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, 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) {