Commit 5d66d264 authored by Anupam Snigdha's avatar Anupam Snigdha Committed by Commit Bot

Remove TS_SS_TRANSITORY flag from TSF

Removed TS_SS_TRANSITORY while querying for status as it was causing
issues in Japanese IME which makes it behave like it is running on
notepad. We now support Korean reconversion so removed the TODO as
well. I also checked the bug for which this fix was originally made
and verified that it no longer reproduces after removing this flag.

Bug: 148355

Change-Id: I0bf1358319b38b1e3f0dba17d9da2b3b679dae45
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2317805Reviewed-by: default avatarYohei Yukawa <yukawa@chromium.org>
Reviewed-by: default avatarSiye Liu <siliu@microsoft.com>
Commit-Queue: Anupam Snigdha <snianu@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#791392}
parent fca3c92b
...@@ -265,22 +265,19 @@ TEST_F(TSFInputPanelTest, GetStatusTest) { ...@@ -265,22 +265,19 @@ TEST_F(TSFInputPanelTest, 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((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
status.dwStaticFlags);
} }
TEST_F(TSFInputPanelTest, ManualInputPaneToAutomaticPolicyTest) { TEST_F(TSFInputPanelTest, ManualInputPaneToAutomaticPolicyTest) {
TS_STATUS status = {}; TS_STATUS status = {};
EXPECT_EQ(S_OK, text_store_->GetStatus(&status)); EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
status.dwStaticFlags);
// TODO(crbug.com/1031786): Change this test once this bug is fixed // TODO(crbug.com/1031786): Change this test once this bug is fixed
fake_input_method_->ShowVirtualKeyboardIfEnabled(); fake_input_method_->ShowVirtualKeyboardIfEnabled();
EXPECT_EQ(S_OK, text_store_->GetStatus(&status)); EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
status.dwStaticFlags);
} }
// TODO(crbug.com/1031786): Enable this test this once this bug is fixed. // TODO(crbug.com/1031786): Enable this test this once this bug is fixed.
...@@ -290,18 +287,15 @@ TEST_F(TSFInputPanelTest, DISABLED_AutomaticInputPaneToManualPolicyTest) { ...@@ -290,18 +287,15 @@ TEST_F(TSFInputPanelTest, DISABLED_AutomaticInputPaneToManualPolicyTest) {
// and test if the automatic policy flag has been set or not. // and test if the automatic policy flag has been set or not.
EXPECT_EQ(S_OK, text_store_->GetStatus(&status)); EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
status.dwStaticFlags);
fake_input_method_->ShowVirtualKeyboardIfEnabled(); fake_input_method_->ShowVirtualKeyboardIfEnabled();
EXPECT_EQ(S_OK, text_store_->GetStatus(&status)); EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_NE((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_NE((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
status.dwStaticFlags);
fake_input_method_->DetachTextInputClient(nullptr); fake_input_method_->DetachTextInputClient(nullptr);
EXPECT_EQ(S_OK, text_store_->GetStatus(&status)); EXPECT_EQ(S_OK, text_store_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
status.dwStaticFlags);
} }
// TODO(crbug.com/1031786): Enable this test this once this bug is fixed. // TODO(crbug.com/1031786): Enable this test this once this bug is fixed.
...@@ -312,30 +306,25 @@ TEST_F(TSFMultipleInputPanelTest, ...@@ -312,30 +306,25 @@ TEST_F(TSFMultipleInputPanelTest,
// and test if the automatic policy flag has been set or not. // and test if the automatic policy flag has been set or not.
EXPECT_EQ(S_OK, text_store1_->GetStatus(&status)); EXPECT_EQ(S_OK, text_store1_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
status.dwStaticFlags);
fake_input_method_->ShowVirtualKeyboardIfEnabled(); fake_input_method_->ShowVirtualKeyboardIfEnabled();
EXPECT_EQ(S_OK, text_store1_->GetStatus(&status)); EXPECT_EQ(S_OK, text_store1_->GetStatus(&status));
EXPECT_NE((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_NE((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
status.dwStaticFlags);
fake_input_method_->DetachTextInputClient(nullptr); fake_input_method_->DetachTextInputClient(nullptr);
SwitchToDifferentTSFTextStore(); SwitchToDifferentTSFTextStore();
// Different TSFTextStore is in focus so manual policy should be set in the // Different TSFTextStore is in focus so manual policy should be set in the
// previous one // previous one
EXPECT_EQ(S_OK, text_store1_->GetStatus(&status)); EXPECT_EQ(S_OK, text_store1_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
status.dwStaticFlags);
EXPECT_EQ(S_OK, text_store2_->GetStatus(&status)); EXPECT_EQ(S_OK, text_store2_->GetStatus(&status));
EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
status.dwStaticFlags);
fake_input_method_->ShowVirtualKeyboardIfEnabled(); fake_input_method_->ShowVirtualKeyboardIfEnabled();
EXPECT_EQ(S_OK, text_store2_->GetStatus(&status)); EXPECT_EQ(S_OK, text_store2_->GetStatus(&status));
EXPECT_NE((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_NE((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
status.dwStaticFlags);
} }
} // namespace } // namespace
......
...@@ -244,8 +244,7 @@ HRESULT TSFTextStore::GetStatus(TS_STATUS* status) { ...@@ -244,8 +244,7 @@ HRESULT TSFTextStore::GetStatus(TS_STATUS* status) {
// status->dwDynamicFlags &= ~TS_SD_INPUTPANEMANUALDISPLAYENABLE; // status->dwDynamicFlags &= ~TS_SD_INPUTPANEMANUALDISPLAYENABLE;
status->dwDynamicFlags |= TS_SD_INPUTPANEMANUALDISPLAYENABLE; status->dwDynamicFlags |= TS_SD_INPUTPANEMANUALDISPLAYENABLE;
// We don't support hidden text. // We don't support hidden text.
// TODO(IME): Remove TS_SS_TRANSITORY to support Korean reconversion status->dwStaticFlags = TS_SS_NOHIDDENTEXT;
status->dwStaticFlags = TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT;
return S_OK; return S_OK;
} }
......
...@@ -393,8 +393,7 @@ TEST_F(TSFTextStoreTest, GetStatusTest) { ...@@ -393,8 +393,7 @@ 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((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags); EXPECT_EQ((ULONG)TS_SD_INPUTPANEMANUALDISPLAYENABLE, status.dwDynamicFlags);
EXPECT_EQ((ULONG)(TS_SS_TRANSITORY | TS_SS_NOHIDDENTEXT), EXPECT_EQ((ULONG)(TS_SS_NOHIDDENTEXT), status.dwStaticFlags);
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