فهرست منبع

Keymap: Fix switching selected keymap

Previously keymap did switching of the selected keymap twice when the
command was executed. First set it to the first keymap on the list and
later, if present, to the chosen one.

Currently the switching to the first keymap on the list is done only
when the selection is not present or it's not on the list of keymaps.
Paweł Łukasik 3 سال پیش
والد
کامیت
a0ffdeb58a
1فایلهای تغییر یافته به همراه3 افزوده شده و 10 حذف شده
  1. 3 10
      Userland/Utilities/keymap.cpp

+ 3 - 10
Userland/Utilities/keymap.cpp

@@ -55,8 +55,6 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
 
     auto mapper_config = TRY(Core::ConfigFile::open("/etc/Keyboard.ini", Core::ConfigFile::AllowWriting::Yes));
 
-    int rc = 0;
-
     if (!mappings.is_empty()) {
         auto mappings_vector = mappings.split(',');
 
@@ -77,10 +75,6 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
         auto keymaps = String::join(',', mappings_vector);
         mapper_config->write_entry("Mapping", "Keymaps", keymaps);
         TRY(mapper_config->sync());
-        rc = set_keymap(mappings_vector.first());
-        if (rc != 0) {
-            return rc;
-        }
     }
 
     auto keymaps = mapper_config->read_entry("Mapping", "Keymaps");
@@ -95,14 +89,13 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
         }
 
         if (!keymaps_vector.find(mapping).is_end()) {
-            rc = set_keymap(mapping);
-            if (rc != 0) {
+            int rc = set_keymap(mapping);
+            if (rc == 0)
                 return rc;
-            }
         } else {
             warnln("Keymap '{}' is not in list of configured keymaps ({})", mapping, keymaps);
         }
     }
 
-    return 0;
+    return set_keymap(keymaps_vector.first());
 }