Просмотр исходного кода

service: hid: Restore active aruid

german77 2 лет назад
Родитель
Сommit
87e26de0fc

+ 6 - 0
src/hid_core/resources/applet_resource.cpp

@@ -118,6 +118,12 @@ void AppletResource::UnregisterAppletResourceUserId(u64 aruid) {
     data[index].aruid = 0;
 
     registration_list.flag[index] = RegistrationStatus::PendingDelete;
+
+    for (std::size_t i = 0; i < AruidIndexMax; i++) {
+        if (registration_list.flag[i] == RegistrationStatus::Initialized) {
+            active_aruid = registration_list.aruid[i];
+        }
+    }
 }
 
 void AppletResource::FreeAppletResourceId(u64 aruid) {

+ 6 - 0
src/hid_core/resources/npad/npad_resource.cpp

@@ -72,6 +72,12 @@ void NPadResource::UnregisterAppletResourceUserId(u64 aruid) {
         state[aruid_index] = {};
         registration_list.flag[aruid_index] = RegistrationStatus::PendingDelete;
     }
+
+    for (std::size_t i = 0; i < AruidIndexMax; i++) {
+        if (registration_list.flag[i] == RegistrationStatus::Initialized) {
+            active_data_aruid = registration_list.aruid[i];
+        }
+    }
 }
 
 void NPadResource::DestroyStyleSetUpdateEvents(u64 aruid) {