LINUX.ORG.RU
ФорумGames

[sdl] Глобальные сочетания клавиш

 


0

1

Есть такая проблемка - в играх, использующих sdl (xmoto, например), не работают сочетания клавиш оконного менеджера. Совсем. А очень хотелось бы, чтобы работали, например, чтобы сворачивать игру, или громкость менять.

Из этого возникает вопрос: нет ли способа заставить их работать? Там, конфиг прописать или с патчиком собрать. А то ведь у оффтопика таких проблем совсем нет.

Кто сталкивался - подскажите пожалуйста. Заранее спасибо!

В принципе в полноэкранном режиме sdl и не должны срабатывать клавиши кроме включающих терминал. Попробуй повесить сворачивание окна на кнопку джойстика.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

Там вот какое дело, sdl библиотека, которая отвечает за ввод с клавиатуры/любого другого устройства пытается перехватывать сигнал со всех кнопок устройств, которые были определены при компиляции, т.е. в стандартный поток ввода все эти сочетания не попадают. Тоже бьюсь над этой проблемой.

Единственное, что пришло в голову - пропускать ввод сначала через резидентную программу, которая реагирует на спец. клавиши, а если нажата клавиша обычная (не в сочетании), то уже передавать сигнал SDL-приложению.

ms-dos32
()
Ответ на: комментарий от ms-dos32

Всё они попадают куда надо.
SDL 1.2.14 + KDE 4.7.4 - все работает. И громкость меняется, и сворачивается, и закрывается.
Под опенбоксом тоже работает.

iSage ★★★★
()
Ответ на: комментарий от iSage

Тогда надо собирать вручную, поскольку лично у меня все клавиши клавиатуры перехватываются SDL (из репозитория Debian), даже делал прогу, которая секла, нажато ли сочетание Alt+Tab.

ms-dos32
()
Ответ на: комментарий от ms-dos32

спасибо за помощь) соберу значит sdl из исходников

FuriousBean
() автор топика

Зависит от игры. Если игра в процессе работы вызывает SDL_WM_GrabInput, то происходит полный захват клавиатуры и мыши, и сделать с этим ничего нельзя. Самое смешное, что если игра зависнет (или упадет без вызова обработчика сигнала), то ввод так и останется захваченным. Линукс не готов для десктопа, увы.

Deleted
()
Ответ на: комментарий от Deleted

А если пропатчить SDL, чтобы эта функция не отрабатывала, будет ли работать клавиатура в игре вообще?

O02eg ★★★★★
()
Ответ на: комментарий от Deleted

Запуск в отдельных иксах - простое решение этой проблемы.

drull ★☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.