Как отключить автоматические события щелчка средней кнопкой мыши в X (Xlib)? - PullRequest
1 голос
/ 25 февраля 2010

В настоящее время я реализую программу на X11 с использованием C. Я получил программу для обработки событий правого и левого щелчка, однако при среднем щелчке возникает проблема. Похоже, мой оконный менеджер (Gnome в Ubuntu 9.10) считает, что лучше, если вместо одного щелчка средней кнопкой мыши вместо меня будет ряд других щелчков. Я предполагаю, что это как-то связано с использованием среднего щелчка для копирования-вставки. Я действительно не хочу этого, так как я делаю полноэкранное приложение с OpenGL, а такие вещи не подходят. Есть ли способ, чтобы средняя кнопка мыши работала как любая другая кнопка?

Мой текущий код выглядит примерно так:

switch(currentXEvent.type) {
    case ButtonPress:
        switch(currentXEvent.xbutton.button) {
            case 1:
                leftMouseButton(currentXEvent.xbutton.x, currentXEvent.xbutton.y);
                break;
            case 2:
                middleMouseButton(currentXEvent.xbutton.x, currentXEvent.xbutton.y);
                break;
        }
}

Моя сложность заключается в том, что он ведет себя как нажатие leftMouseButton (). Есть идеи?

1 Ответ

1 голос
/ 25 февраля 2010

Для этого вам нужно получить элементы управления с сервера. Затем оконный менеджер исключается из цепочки обработки. Наиболее удобный способ - использовать libSDL . Он создает соответствующий контекст для полноэкранного приложения OpenGL и легче обрабатывается, чем Xlib + GLX.

...