Repository :
https://github.com/FarGroup/FarManager
On branch : master
Link :
https://github.com/FarGroup/FarManager/commit/5739305e8c0dfef2cf4bd955daea0f997f93e8ee
>---------------------------------------------------------------
commit 5739305e8c0dfef2cf4bd955daea0f997f93e8ee
Author: Alex Alabuzhev <
alab...@gmail.com>
Date: Tue Apr 7 19:00:03 2026 +0100
Improve keyboard layouts detection
>---------------------------------------------------------------
5739305e8c0dfef2cf4bd955daea0f997f93e8ee
far/platform.cpp | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/far/platform.cpp b/far/platform.cpp
index 8cdb64122..d1082b91f 100644
--- a/far/platform.cpp
+++ b/far/platform.cpp
@@ -920,11 +920,17 @@ std::vector<HKL> get_keyboard_layout_list()
{
auto Result = try_get_keyboard_list(get_keyboard_layout_list_registry_ctf);
- if (Result.empty())
- Result = try_get_keyboard_list(get_keyboard_layout_list_api);
+ for (const auto& i: try_get_keyboard_list(get_keyboard_layout_list_api))
+ {
+ if (std::ranges::find(Result, i) == Result.end())
+ Result.push_back(i);
+ }
- if (Result.empty())
- Result = try_get_keyboard_list(get_keyboard_layout_list_registry_base);
+ for (const auto& i: try_get_keyboard_list(get_keyboard_layout_list_registry_base))
+ {
+ if (std::ranges::find(Result, i) == Result.end())
+ Result.push_back(i);
+ }
// Only the CTF method returns layouts in the correct order.
// We want to prioritise the default layout, because InitKeysArray uses the first match strategy,