Как изменить фокус в X-Windows? - PullRequest
3 голосов
/ 16 марта 2009

Я работаю над старым Motif-приложением для Linux. Я хочу иметь возможность программно изменять активное окно нашего приложения. Я могу перенаправить ввод с помощью функции XSetInputFocus (), и ввод с клавиатуры начинает идти туда, но функции XReconfigureWMWindow () и XRaiseWindow () просто не работают

Я читал, что оконные менеджеры пытаются остановить это поведение, поэтому пытались отключить перенаправление конфигурации, но это тоже не работает. Есть идеи, как сделать одно из моих окон поверх стека окон?

Ответы [ 2 ]

2 голосов
/ 17 марта 2009

Доступна небольшая программа под названием wmctrl (по крайней мере, в Debian / Ubuntu она входит в стандартный дистрибутив), которая способна выполнять множество операций на окнах и рабочих столах и обрабатывать множество оконных менеджеров. Я бы посоветовал проверить, работает ли он в вашей среде, и если да, заглянуть в его источники.

0 голосов
/ 16 марта 2009

Вы можете обнаружить, что ответ на этот вопрос зависит от диспетчера окон, который использует пользователь, или даже от того, какие настройки он задал диспетчеру окон. Мне нравится, когда мои оконные менеджеры выполняют функцию «фокус следует за мышью», а это означает, что вы не можете отправить фокус на окно, на которое я не наложил мышь, если только вы не деформируете мышку там (эта функция называется XWarpMouse ?).

...