Средняя кнопка мыши, эмулированная даже при том, что отключенный в xinput/libinput

Это должно быть отключено, и все же я получаю щелчки средней кнопкой мыши. Когда я выполняю список xinput, я получаю это:

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ PixArt Microsoft USB Optical Mouse        id=9    [slave  pointer  (2)]
⎜   ↳ SQT USB Gaming Keyboard                   id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]

... и еще несколько неманипуляторов. Исследуя каждый из них в свою очередь, я вижу, что только 9 (мышь) имеют набор эмуляции щелчка средней кнопкой... для обнуления.

Device 'PixArt Microsoft USB Optical Mouse':
    Device Enabled (152):   1
    Coordinate Transformation Matrix (154): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Natural Scrolling Enabled (288):   0
    libinput Natural Scrolling Enabled Default (289):   0
    libinput Scroll Methods Available (290):    0, 0, 1
    libinput Scroll Method Enabled (291):   0, 0, 0
    libinput Scroll Method Enabled Default (292):   0, 0, 0
    libinput Button Scrolling Button (293): 2
    libinput Button Scrolling Button Default (294): 2
    libinput Middle Emulation Enabled (295):    0
    libinput Middle Emulation Enabled Default (296):    0
    libinput Accel Speed (297): 0.000000
    libinput Accel Speed Default (298): 0.000000
    libinput Accel Profiles Available (299):    1, 1
    libinput Accel Profile Enabled (300):   1, 0
    libinput Accel Profile Enabled Default (301):   1, 0
    libinput Left Handed Enabled (302): 0
    libinput Left Handed Enabled Default (303): 0
    libinput Send Events Modes Available (273): 1, 0
    libinput Send Events Mode Enabled (274):    0, 0
    libinput Send Events Mode Enabled Default (275):    0, 0
    Device Node (276):  "/dev/input/event3"
    Device Product ID (277):    1118, 203
    libinput Drag Lock Buttons (304):   <no items>
    libinput Horizontal Scroll Enabled (305):   1

И все же я получаю щелчки средней кнопкой в играх. Для доказательства я не схожу с ума, я записал крошечную программу SDL2 сам для проверки:

#include <SDL.h>

int main(int argc, char ** argv)
{
    int quit = 0;
    SDL_Event event;
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Window *window = SDL_CreateWindow("Middle click detector",
        SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);

    while (!quit)
    {
        SDL_WaitEvent(&event);
        switch (event.type)
        {
        case SDL_QUIT:
            quit = 1;
            break;
        case SDL_MOUSEBUTTONDOWN:
            if (event.button.button == SDL_BUTTON_MIDDLE)
                printf("Middle clicked!\n");
            else if (event.button.button == SDL_BUTTON_LEFT)
                printf("Left clicked!\n");
            else if (event.button.button == SDL_BUTTON_RIGHT)
                printf("Right clicked!\n");
            else
                printf("What clicked?\n");
        }
    }
    SDL_DestroyWindow(window);
    SDL_Quit();
    return 0;
}

(скомпилированный с gcc sdltest.c - Стеной 'sdl2-конфигурация - cflags - libs')

Конечно же, если я держу оставленный и право щелчка, я добираюсь:

Left clicked!
Right clicked!
Middle clicked!

Люди, которые знают что-нибудь о входе, конвейерно обрабатывают на Linux, можно ли дать мне ключ к разгадке, где посмотреть затем? Я в замешательстве. Я также буду благодарен за любого, кто может выполнить тестовую программу и подтвердить или отклонить это, у них есть та же проблема.

0
задан 21 November 2018 в 12:47

1 ответ

Мне просто пришло в голову проверять с другой мышью. Никакой щелчок средней кнопкой.

Это, кажется, физическая (mis) функция PixArt Microsoft USB Optical Mouse.

0
ответ дан 27 October 2019 в 02:34

Другие вопросы по тегам:

Похожие вопросы: