Как я могу заблокировать курсор внутри окна в Linux?

Я пытаюсь собрать игру для Linux, которая включает в себя множество быстрых действий и метание курсора мыши. Если пользователь хочет играть в оконном режиме, я бы хотел заблокировать курсор внутри окна, чтобы избежать случайного изменения программ в пылу битвы (очевидно, это отменится, если пользователь изменит программу или нажмет кнопку Escape для меню паузы.)

В Windows это можно легко сделать с помощью ClipCursor( ). Я не могу найти аналог в Linux. Есть ли один?

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


person ZorbaTHut    schedule 10.01.2011    source источник
comment
Когда вы спрашиваете несколько связанные вопросы, вы должны связать их друг с другом.   -  person Ben Voigt    schedule 10.01.2011
comment
См. очень похожий вопрос SO 4642863 просит то же самое в MacOS X.   -  person Jonathan Leffler    schedule 10.01.2011
comment
Извините, я не понял, что ожидались связывающие вопросы. Виноват.   -  person ZorbaTHut    schedule 10.01.2011


Ответы (1)


int XGrabPointer(Отображение *отображение, Window grab_window, Bool owner_events, unsigned int event_mask, int pointer_mode, int keyboard_mode< /i>, Окно confine_to, Курсор курсор, Время время);

confine_to
Указывает окно, в котором должен быть ограничен указатель, или Нет.

person ephemient    schedule 10.01.2011
comment
Идеальный! Спасибо. (Теперь нужно настроить его и убедиться, что он работает.) - person ZorbaTHut; 10.01.2011