From 2fb3526f33088834bb0e25f61ab453c4e06feaf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Mon, 21 May 2007 14:51:07 +0000 Subject: [PATCH] after talking on the phone with Axel how to fix this driver's repeat key problem, I found a simpler and actually correct way to fix it... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21187 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/drivers/input/usb_hid/hid.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/add-ons/kernel/drivers/input/usb_hid/hid.c b/src/add-ons/kernel/drivers/input/usb_hid/hid.c index 0d86ea32ec..0d38489f67 100644 --- a/src/add-ons/kernel/drivers/input/usb_hid/hid.c +++ b/src/add-ons/kernel/drivers/input/usb_hid/hid.c @@ -414,7 +414,6 @@ interpret_kb_buffer(hid_device_info *device) { uint8 modifiers = ((uint8*)device->buffer)[0]; uint8 bits = device->last_buffer[0] ^ modifiers; - bool timerSet = false; uint32 i, j; if (bits) { @@ -447,7 +446,6 @@ interpret_kb_buffer(hid_device_info *device) // unmapped key key = 0x200000 + ((uint8*)device->buffer)[i]; } - //dprintf("key down: %x, mapping: %lx\n", ((uint8*)device->buffer)[i], key); write_key(device, key, true); @@ -456,7 +454,6 @@ interpret_kb_buffer(hid_device_info *device) device->repeat_timer.key = key; add_timer(&device->repeat_timer.timer, timer_delay_hook, device->repeat_delay, B_ONE_SHOT_RELATIVE_TIMER); - timerSet = true; } } else break; @@ -488,7 +485,7 @@ interpret_kb_buffer(hid_device_info *device) } write_key(device, key, false); - if (!timerSet) + if (device->repeat_timer.key == key) cancel_timer(&device->repeat_timer.timer); } } else @@ -664,15 +661,12 @@ hid_device_added(const usb_device *dev, void **cookie) dev_desc = usb->get_device_descriptor(dev); - if (dev_desc->vendor_id == USB_VENDOR_WACOM) { - DPRINTF_INFO ((MY_ID "vendor ID 0x%04X, product ID 0x%04X\n", - dev_desc->vendor_id, dev_desc->product_id)); - return B_ERROR; - } - DPRINTF_INFO ((MY_ID "vendor ID 0x%04X, product ID 0x%04X\n", dev_desc->vendor_id, dev_desc->product_id)); + if (dev_desc->vendor_id == USB_VENDOR_WACOM) + return B_ERROR; + /* check interface class */ if ((conf = usb->get_nth_configuration(dev, DEFAULT_CONFIGURATION)) == NULL) {