From 7852a6c307ff105b8c50835fd3c0d0f36356fa9c Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sat, 23 Mar 2024 15:49:06 -0700
Subject: [PATCH] Added device name for evdev mice and keyboards
---
src/core/linux/SDL_evdev.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/core/linux/SDL_evdev.c b/src/core/linux/SDL_evdev.c
index b39630d9262fc..0f464e301f715 100644
--- a/src/core/linux/SDL_evdev.c
+++ b/src/core/linux/SDL_evdev.c
@@ -607,7 +607,12 @@ static SDL_Scancode SDL_EVDEV_translate_keycode(int keycode)
static int SDL_EVDEV_init_keyboard(SDL_evdevlist_item *item, int udev_class)
{
- SDL_AddKeyboard((SDL_KeyboardID)item->fd, NULL, SDL_TRUE);
+ char name[128];
+
+ name[0] = '\0';
+ ioctl(item->fd, EVIOCGNAME(sizeof(name)), name);
+
+ SDL_AddKeyboard((SDL_KeyboardID)item->fd, name, SDL_TRUE);
return 0;
}
@@ -619,10 +624,14 @@ static void SDL_EVDEV_destroy_keyboard(SDL_evdevlist_item *item)
static int SDL_EVDEV_init_mouse(SDL_evdevlist_item *item, int udev_class)
{
+ char name[128];
int ret;
struct input_absinfo abs_info;
- SDL_AddMouse((SDL_MouseID)item->fd, NULL, SDL_TRUE);
+ name[0] = '\0';
+ ioctl(item->fd, EVIOCGNAME(sizeof(name)), name);
+
+ SDL_AddMouse((SDL_MouseID)item->fd, name, SDL_TRUE);
ret = ioctl(item->fd, EVIOCGABS(ABS_X), &abs_info);
if (ret < 0) {