aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Lebosquain <julien@lebosquain.net>2024-08-04 20:04:12 +0200
committerGitHub <noreply@github.com>2024-08-04 19:04:12 +0100
commite85ee673b10da5a314e68cea88caeacd2918f311 (patch)
treed7f97b7ed8fdeb7ded1315be17ffe0bae4dcb8ae
parent42f22fe5d79a2aa5866e84f4b0bcf3d2114fa62a (diff)
Fix LocaleExtension SetRawSource usages + language perf improvement (#7121)1.1.1370
* Avoid Avalonia CompiledBindingPathBuilder.SetRawSource * Improve UI language change performance
-rw-r--r--src/Ryujinx/Common/Locale/LocaleExtension.cs7
-rw-r--r--src/Ryujinx/Common/Locale/LocaleManager.cs4
2 files changed, 8 insertions, 3 deletions
diff --git a/src/Ryujinx/Common/Locale/LocaleExtension.cs b/src/Ryujinx/Common/Locale/LocaleExtension.cs
index 40661bf3a..b5964aa85 100644
--- a/src/Ryujinx/Common/Locale/LocaleExtension.cs
+++ b/src/Ryujinx/Common/Locale/LocaleExtension.cs
@@ -21,7 +21,7 @@ namespace Ryujinx.Ava.Common.Locale
21 21
22 var builder = new CompiledBindingPathBuilder(); 22 var builder = new CompiledBindingPathBuilder();
23 23
24 builder.SetRawSource(LocaleManager.Instance) 24 builder
25 .Property(new ClrPropertyInfo("Item", 25 .Property(new ClrPropertyInfo("Item",
26 obj => (LocaleManager.Instance[keyToUse]), 26 obj => (LocaleManager.Instance[keyToUse]),
27 null, 27 null,
@@ -32,7 +32,10 @@ namespace Ryujinx.Ava.Common.Locale
32 32
33 var path = builder.Build(); 33 var path = builder.Build();
34 34
35 var binding = new CompiledBindingExtension(path); 35 var binding = new CompiledBindingExtension(path)
36 {
37 Source = LocaleManager.Instance
38 };
36 39
37 return binding.ProvideValue(serviceProvider); 40 return binding.ProvideValue(serviceProvider);
38 } 41 }
diff --git a/src/Ryujinx/Common/Locale/LocaleManager.cs b/src/Ryujinx/Common/Locale/LocaleManager.cs
index 257611e65..96f648761 100644
--- a/src/Ryujinx/Common/Locale/LocaleManager.cs
+++ b/src/Ryujinx/Common/Locale/LocaleManager.cs
@@ -139,9 +139,11 @@ namespace Ryujinx.Ava.Common.Locale
139 139
140 foreach (var item in locale) 140 foreach (var item in locale)
141 { 141 {
142 this[item.Key] = item.Value; 142 _localeStrings[item.Key] = item.Value;
143 } 143 }
144 144
145 OnPropertyChanged("Item");
146
145 LocaleChanged?.Invoke(); 147 LocaleChanged?.Invoke();
146 } 148 }
147 149