From: Inhong Date: Fri, 28 May 2021 06:41:04 +0000 (+0900) Subject: Fix the issue that does not change from symbol layout to language layout X-Git-Tag: accepted/tizen/unified/20210804.043630~15 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F35%2F262135%2F1;p=platform%2Fcore%2Fuifw%2Fise-default-nui.git Fix the issue that does not change from symbol layout to language layout Change-Id: I7b74ca356dfbc8e6663275084a0881a8e1c87f37 --- diff --git a/ISEDefaultNUI/ISEDefaultNUI.cs b/ISEDefaultNUI/ISEDefaultNUI.cs index 2db3178..b612639 100644 --- a/ISEDefaultNUI/ISEDefaultNUI.cs +++ b/ISEDefaultNUI/ISEDefaultNUI.cs @@ -39,8 +39,9 @@ namespace ISEDefaultNUI IseConfig.Instance.ReadIseConfig(); LanguageManager.Instance.SetEnabledLanguages(IseConfig.Instance.EnabledLanguages); - LanguageInfo currentLanguage = LanguageManager.Instance.GetLanguageInfo(LanguageManager.Instance.GetCurrentLanguage()); + LanguageInfo currentLanguage = LanguageManager.Instance.GetLanguageInfo(IseConfig.Instance.SelectedLanguage); SCLNUI SclNui = new SCLNUI(navigator, DirectoryInfo.Resource + "main_entry.xml"); + SclNui.SetUpdatePending(true); SclNui.SetInputMode(currentLanguage.SelectedInputMode); SclNui.SetCurrentSublayout("DEFAULT"); SclNui.SetStringSubstitution("_LANGUAGE_", currentLanguage.DisplayName); diff --git a/ISEDefaultNUI/Interop/Interop.SclNui.cs b/ISEDefaultNUI/Interop/Interop.SclNui.cs index 0fdb540..a78389f 100644 --- a/ISEDefaultNUI/Interop/Interop.SclNui.cs +++ b/ISEDefaultNUI/Interop/Interop.SclNui.cs @@ -185,6 +185,9 @@ internal static partial class Interop [DllImport(Libraries.SclNui, EntryPoint = "scl_nui_fini")] internal static extern int SclNuiFini(); + [DllImport(Libraries.SclNui, EntryPoint = "scl_nui_get_input_mode")] + internal static extern int SclNuiGetInputMode(out IntPtr mode); + [DllImport(Libraries.SclNui, EntryPoint = "scl_nui_set_input_mode")] internal static extern int SclNuiSetInputMode(string mode); diff --git a/ISEDefaultNUI/SCLNUI.cs b/ISEDefaultNUI/SCLNUI.cs index 33a6894..99cf6b4 100644 --- a/ISEDefaultNUI/SCLNUI.cs +++ b/ISEDefaultNUI/SCLNUI.cs @@ -132,12 +132,18 @@ namespace ISEDefaultNUI navigator.Push(keyboardSettingPage); } - if (eventInfo.keyValue.Equals("Space") && afterPositionX != 0 && Math.Abs(beforePositionX - afterPositionX) > 100) + IntPtr inputMode; + SclNuiGetInputMode(out inputMode); + string mode = Marshal.PtrToStringAnsi(inputMode); + if (eventInfo.keyValue.Equals("Space") && afterPositionX != 0 && Math.Abs(beforePositionX - afterPositionX) > 100 && !mode.Equals("SYM_QTY_1")) { navigator.Pop(); SCLNUI SclNui = new SCLNUI(navigator, Application.Current.DirectoryInfo.Resource + "main_entry.xml"); + SclNui.SetUpdatePending(true); LanguageInfo nextLanguage = beforePositionX < afterPositionX ? LanguageManager.Instance.GetNextLanguage() : LanguageManager.Instance.GetPreviousLanguage(); LanguageManager.Instance.SelectLanguage(nextLanguage); + IseConfig.Instance.SelectedLanguage = nextLanguage.Name; + IseConfig.Instance.WriteIseConfig(); SclNui.SetInputMode(nextLanguage.SelectedInputMode); SclNui.SetCurrentSublayout("DEFAULT"); SclNui.SetStringSubstitution("_LANGUAGE_", nextLanguage.DisplayName); @@ -145,7 +151,17 @@ namespace ISEDefaultNUI navigator.Push(SclNui); } - beforePositionX = 0; + if (eventInfo.keyValue.Equals("CUR_LANG")) + { + this.SetUpdatePending(true); + LanguageInfo currentLanguage = LanguageManager.Instance.GetLanguageInfo(LanguageManager.Instance.GetCurrentLanguage()); + this.SetInputMode(currentLanguage.SelectedInputMode); + this.SetCurrentSublayout("DEFAULT"); + this.SetStringSubstitution("_LANGUAGE_", currentLanguage.DisplayName); + this.SetUpdatePending(false); + } + + beforePositionX = 0; afterPositionX = 0; Marshal.FreeHGlobal(pnt); diff --git a/ISEDefaultNUI/Setting/InputLanguagesPage.cs b/ISEDefaultNUI/Setting/InputLanguagesPage.cs index 4950e5e..4084198 100644 --- a/ISEDefaultNUI/Setting/InputLanguagesPage.cs +++ b/ISEDefaultNUI/Setting/InputLanguagesPage.cs @@ -166,6 +166,7 @@ namespace ISEDefaultNUI enableLanguages.Remove(e.Name); LanguageManager.Instance.SetEnabledLanguages(enableLanguages); IseConfig.Instance.EnabledLanguages = enableLanguages; + IseConfig.Instance.SelectedLanguage = nextLanguage.Name; IseConfig.Instance.WriteIseConfig(); } else diff --git a/ISEDefaultNUI/Setting/KeyboardSettingPage.cs b/ISEDefaultNUI/Setting/KeyboardSettingPage.cs index c21b684..7868ec0 100644 --- a/ISEDefaultNUI/Setting/KeyboardSettingPage.cs +++ b/ISEDefaultNUI/Setting/KeyboardSettingPage.cs @@ -255,6 +255,7 @@ namespace ISEDefaultNUI navigator.Pop(); LanguageInfo currentLanguage = LanguageManager.Instance.GetLanguageInfo(LanguageManager.Instance.GetCurrentLanguage()); SCLNUI SclNui = new SCLNUI(navigator, Application.Current.DirectoryInfo.Resource + "main_entry.xml"); + SclNui.SetUpdatePending(true); SclNui.SetInputMode(currentLanguage.SelectedInputMode); SclNui.SetCurrentSublayout("DEFAULT"); SclNui.SetStringSubstitution("_LANGUAGE_", currentLanguage.DisplayName);