Hi,

The mice and keyboards in xf86-input-evdev/src/evdev.c:EvdevProbe handle a 
"multiple-capability" device wrong for my use.

I have a wireless USB receiver so I use both a mouse and a keyboard with the 
same token.

In `hal-device`, the device for the mouse also has "input.keys" matching 
"info.capabilities".

I tried in /etc/hal/fdi/10-x11-input.fdi to <remove> from "info.capabilities" 
the "info.keys" from this strlist. It works.

The problem is that in `gnome-device-setup' when I drag the name from the 
Virtual Core Pointer it goes only to a keyboard item, and not to the "pointer" 
one (its "use" matches IsXExtensionKeyboard instead of IsXExtensionPointer).

The "evdev" device is added/configured via ioctl's and the configuration from 
hal seems not to be used (it would say weather it originated from matching 
either "input.mouse" xor "input.keys").

This small permutation in evdev.c works for me (it disables `has_keys' in favor 
of XI_MOUSE to XI_KEYBOARD):

xf86-input-evdev/src/evdev.c:1341

    has_axes = FALSE;
    has_keys = FALSE;
    num_buttons = 0;

    /* count all buttons */
    for (i = BTN_MISC; i < BTN_JOYSTICK; i++)
    {
        if (TestBit(i, key_bitmask))
            num_buttons++;
    }

    if (TestBit(REL_X, rel_bitmask) && TestBit(REL_Y, rel_bitmask) ||
        TestBit(ABS_X, abs_bitmask) && TestBit(ABS_Y, abs_bitmask))
        has_axes = TRUE;

    for (i = 0; i < BTN_MISC; i++)
        if (TestBit(i, key_bitmask))
            break;

    if (i < BTN_MISC)
        has_keys = TRUE;

    if (has_axes && num_buttons)
        has_keys = FALSE;


and the rest is almost identical as from #1352, but no `has_keys' assignment.

Thanks -- S.


      
_______________________________________________
xorg mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xorg

Reply via email to