Send events for mice and keyboards detected during initialization

Fixes https://github.com/libsdl-org/SDL/issues/12815
This commit is contained in:
Sam Lantinga
2025-09-11 19:12:42 -07:00
parent 8d5b82be2e
commit 3ddc3f1146
24 changed files with 83 additions and 79 deletions

View File

@@ -612,14 +612,14 @@ static bool SDL_EVDEV_init_keyboard(SDL_evdevlist_item *item, int udev_class)
name[0] = '\0';
ioctl(item->fd, EVIOCGNAME(sizeof(name)), name);
SDL_AddKeyboard((SDL_KeyboardID)item->fd, name, true);
SDL_AddKeyboard((SDL_KeyboardID)item->fd, name);
return true;
}
static void SDL_EVDEV_destroy_keyboard(SDL_evdevlist_item *item)
{
SDL_RemoveKeyboard((SDL_KeyboardID)item->fd, true);
SDL_RemoveKeyboard((SDL_KeyboardID)item->fd);
}
static bool SDL_EVDEV_init_mouse(SDL_evdevlist_item *item, int udev_class)
@@ -631,7 +631,7 @@ static bool SDL_EVDEV_init_mouse(SDL_evdevlist_item *item, int udev_class)
name[0] = '\0';
ioctl(item->fd, EVIOCGNAME(sizeof(name)), name);
SDL_AddMouse((SDL_MouseID)item->fd, name, true);
SDL_AddMouse((SDL_MouseID)item->fd, name);
ret = ioctl(item->fd, EVIOCGABS(ABS_X), &abs_info);
if (ret < 0) {
@@ -656,7 +656,7 @@ static bool SDL_EVDEV_init_mouse(SDL_evdevlist_item *item, int udev_class)
static void SDL_EVDEV_destroy_mouse(SDL_evdevlist_item *item)
{
SDL_RemoveMouse((SDL_MouseID)item->fd, true);
SDL_RemoveMouse((SDL_MouseID)item->fd);
}
static bool SDL_EVDEV_init_touchscreen(SDL_evdevlist_item *item, int udev_class)

View File

@@ -433,7 +433,7 @@ static SDL_WSCONS_input_data *SDL_WSCONS_Init_Keyboard(const char *dev)
}
input->keyboardID = SDL_GetNextObjectID();
SDL_AddKeyboard(input->keyboardID, NULL, false);
SDL_AddKeyboard(input->keyboardID, NULL);
input->keymap.map = SDL_calloc(KS_NUMKEYCODES, sizeof(struct wscons_keymap));
if (!input->keymap.map) {

View File

@@ -52,7 +52,7 @@ SDL_WSCONS_mouse_input_data *SDL_WSCONS_Init_Mouse(void)
}
input->mouseID = SDL_GetNextObjectID();
SDL_AddMouse(input->mouseID, NULL, false);
SDL_AddMouse(input->mouseID, NULL);
#ifdef WSMOUSEIO_SETMODE
ioctl(input->fd, WSMOUSEIO_SETMODE, WSMOUSE_COMPAT);