2009-03-16 2 views
3

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

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

+0

Привет @theJonan, смогли ли вы найти решение о том, как сфокусироваться? Я хочу создать коллекцию всех решений, поэтому я могу создать решение для кросс-оконного менеджера. – Noitidart

ответ

0

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

2

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

+0

В качестве альтернативы wmctrl см. [Xdotool] (http://www.semicomplete.com/projects/xdotool/). –

 Смежные вопросы

  • Нет связанных вопросов^_^