• Dmitry Torokhov's avatar
    Input: implement input filters · ef7995f4
    Dmitry Torokhov authored
    Sometimes it is desirable to suppress certain events from reaching
    input handlers and thus user space. One such example is Mac mouse
    button emulation code which catches certain key presses and converts
    them into button clicks as if they were emitted by a virtual mouse.
    The original key press events should be completely suppressed,
    otherwise user space will be confused, and while keyboard driver
    does it on its own evdev is blissfully unaware of this arrangement.
    
    This patch adds notion of 'filter' to the standard input handlers,
    which may flag event as filtered thus preventing it from reaching
    other input handlers. Filters don't (nor will they ever) have a
    notion of priority relative to each other, input core will run all
    of them first and any one of them may mark event as filtered.
    
    This patch is inspired by similar patch by Matthew Garret but the
    implementation and intended usage are quite different.
    Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
    ef7995f4
input.c 47.4 KB