From 67f1ff42ed7947e8227b1159fb650e31b6ca2948 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Wed, 10 Mar 2010 01:12:12 +0000 Subject: [PATCH] Add missing check for non-data items which lead to picking up some mice as keyboards due to buttons being padded by non-data arrays. The keys wouldn't actually be used later, but a (useless) keyboard device would still be published. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35797 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp b/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp index c759383b98..aa611bb36c 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp +++ b/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp @@ -151,6 +151,9 @@ KeyboardDevice::AddHandler(HIDDevice *device, HIDReport *input) bool foundKeyboardUsage = false; for (uint32 i = 0; i < input->CountItems(); i++) { HIDReportItem *item = input->ItemAt(i); + if (!item->HasData()) + continue; + if (item->UsagePage() == HID_USAGE_PAGE_KEYBOARD || (item->UsagePage() == HID_USAGE_PAGE_CONSUMER && item->Array()) || (item->UsagePage() == HID_USAGE_PAGE_BUTTON && item->Array())) {