From fdf72d1e45ad4a251fe3d978a70ff14261af6f93 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sat, 22 Feb 2025 08:35:27 -0800
Subject: [PATCH] Use the keyboard/mouse vendor if available
Fixes the 8BitDo Micro gamepad so it shows up as "8BitDo HID-compliant mouse" and "8BitDo HID Keyboard Device" in keyboard mode over USB.
---
src/video/windows/SDL_windowsevents.c | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c
index 897d999bb5c37..8e1ddd7d3c8e5 100644
--- a/src/video/windows/SDL_windowsevents.c
+++ b/src/video/windows/SDL_windowsevents.c
@@ -895,17 +895,7 @@ static char *GetDeviceName(HANDLE hDevice, HDEVINFO devinfo, const char *instanc
}
}
- if (prod[0]) {
- char *vendor_name = WIN_StringToUTF8W(vend);
- char *product_name = WIN_StringToUTF8W(prod);
- if (product_name) {
- name = SDL_CreateDeviceName(attr.VendorID, attr.ProductID, vendor_name, product_name);
- }
- SDL_free(vendor_name);
- SDL_free(product_name);
- }
-
- if (!name) {
+ if (!prod[0]) {
SP_DEVINFO_DATA data;
SDL_zero(data);
data.cbSize = sizeof(data);
@@ -932,13 +922,21 @@ static char *GetDeviceName(HANDLE hDevice, HDEVINFO devinfo, const char *instanc
size = (SDL_arraysize(prod) - 1);
}
prod[size] = 0;
-
- name = WIN_StringToUTF8W(prod);
}
break;
}
}
}
+
+ if (prod[0]) {
+ char *vendor_name = vend[0] ? WIN_StringToUTF8W(vend) : NULL;
+ char *product_name = WIN_StringToUTF8W(prod);
+ if (product_name) {
+ name = SDL_CreateDeviceName(attr.VendorID, attr.ProductID, vendor_name, product_name);
+ }
+ SDL_free(vendor_name);
+ SDL_free(product_name);
+ }
return name;
}