mirror of
https://gitlab.freedesktop.org/libinput/libei.git
synced 2026-05-05 14:48:02 +02:00
ei: improve debug messages for keymap failures
Let's be more informative about what failed. Fixes #48
This commit is contained in:
parent
924341e174
commit
38132d6fc5
1 changed files with 11 additions and 8 deletions
|
|
@ -958,7 +958,7 @@ ei_device_keyboard_get_keymap(struct ei_device *device)
|
|||
}
|
||||
|
||||
static struct ei_keymap *
|
||||
ei_keymap_new(enum ei_keymap_type type, int fd, size_t size)
|
||||
ei_keymap_new(struct ei *ei, enum ei_keymap_type type, int fd, size_t size)
|
||||
{
|
||||
_unref_(ei_keymap) *keymap = ei_keymap_create(NULL);
|
||||
|
||||
|
|
@ -966,15 +966,20 @@ ei_keymap_new(enum ei_keymap_type type, int fd, size_t size)
|
|||
case EI_KEYMAP_TYPE_XKB:
|
||||
break;
|
||||
default:
|
||||
log_bug(ei, "Unsupported keymap type: %u", type);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (fd < 0 || size == 0)
|
||||
if (fd < 0 || size == 0) {
|
||||
log_bug(ei, "Invalid keymap fd %d with size %zu", fd, size);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int newfd = xdup(fd);
|
||||
if (newfd < 0)
|
||||
if (newfd < 0) {
|
||||
log_bug(ei, "Failed to dup keymap fd: %s", strerror(errno));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
keymap->fd = newfd;
|
||||
keymap->type = type;
|
||||
|
|
@ -993,12 +998,10 @@ ei_device_set_keymap(struct ei_device *device,
|
|||
if (!type)
|
||||
return;
|
||||
|
||||
_unref_(ei_keymap) *keymap = ei_keymap_new(type, keymap_fd, size);
|
||||
if (!keymap) {
|
||||
log_bug(ei_device_get_context(device),
|
||||
"Failed to apply server-requested keymap");
|
||||
struct ei *ei = ei_device_get_context(device);
|
||||
_unref_(ei_keymap) *keymap = ei_keymap_new(ei, type, keymap_fd, size);
|
||||
if (!keymap)
|
||||
return; /* FIXME: ei_device_remove() here */
|
||||
}
|
||||
|
||||
keymap->device = device;
|
||||
device->keymap = ei_keymap_ref(keymap);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue