В настоящее время я реализую программу в X11 с использованием C. Я получил программу для обработки событий вправо и влево, однако при среднем щелчке возникает проблема. Кажется, мой оконный менеджер (Gnome on Ubuntu 9.10) думает, что лучше, если вместо одного щелчка одним щелчком мыши у меня должна быть серия других кликов. Я предполагаю, что это связано с тем, что средний клик используется для копирования-вставки. Я действительно не хочу этого, хотя, поскольку я делаю полноэкранное приложение с OpenGL, и такие вещи не подходят. Есть ли способ, чтобы средняя кнопка мыши работала как любая другая кнопка?Как отключить автоматические средние мыши события мыши в X (Xlib)?
Мой текущий код выглядит примерно так:
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() была нажата. Есть идеи?
Спасибо за ваш ответ. Я бы предпочел не добавлять другую библиотеку, учитывая, что большая часть кода для работы с X уже написана. Я хотел бы знать, как захватить элементы управления. Ранее я звонил: XGrabKeyboard (дисплей, окно, истина, GrabModeAsync, GrabModeAsync, CurrentTime); XGrabPointer (отображение, окно, true, маски, GrabModeAsync, GrabModeAsync, окно, None, CurrentTime); Есть ли что-то еще, что мне нужно будет добавить? – Warpspace
Выглядит хорошо. Я не вижу ничего другого, просто убедитесь, что ваш event_mask установлен правильно. В сомнениях, вы можете найти дальнейшие намеки, посмотрев код libSDL. Я не занимался схваткой, так что это вся помощь, которую я могу предоставить. p.s .: Если вам нравится мой ответ, вы должны дать ему надпись. Вы новичок в stackoverflow, поэтому я говорю вам, что голосование - это жизненно важная вещь, которая делает работу stackoverflow. – ypnos
Это не позволит мне перейти (я слишком новый), но спасибо за ответ. Вы правы, это работает почти так, как у меня есть, и код libSDL будет иметь остальное, если мне это нужно. Благодарю. – Warpspace