Наши
Сайдбары
   
IRC-канал
Linuxportal.ru
   
Импорт новостей
 
Вход Быстрая регистрация На главную

Поиск:
 
   КАЛЕНДАРЬ
     Выберите дату записи:
 

<Апрель 2004 >
ПН ВТ СР ЧТ ПТ СБ ВС
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
  Блог сисадмина | sloth


Докатился ... | 17.04.2004 | 16:33

Куда катиться мир?
Куда меня несет?

Не знаю как это расценивать, но я начинаю обращатся к исходникам программ за информацией. Видимо, это определенный показатель, вопрос только, чего?
Залез в исходники xev, познаю много нового и интересного :)
Вероятно, будут последствия такого "отклонения".
Пойду дальше глядеть ...


Комментарии посетителей:

Дед Маразм
20.04.2004 | 9:33
Омск
Ст: 9 | Комм: 51
А что например познал нового? Хотя я согласен подход наверно единственно верный. Хотя и напряжный.

21.04.2004 | 11:10
Калуга
Ст: 19 | Комм: 52
Изучаю природу XEvent. Но больше меня интересует вопрос как перехватывать эти "эвентсы" если фокус ввода у другого приложения/окна ...

21.04.2004 | 17:41
Калуга
Ст: 19 | Комм: 52
В настоящий момент предполагаю несколько карявую реализацию:
- при запуске приложения получать окошко на котором фокус с помощью XGetInputFocus;
- после чего слушать "эвентсы", в том числе и FoucusOut;
- при получении "эвентса" FocusOut выполнять XGetInputFocus, таким образом получая окошко на которое "перешел" фокус;
- все это дело зациклить ... или, как говорят иногда в ассемблере заloopить (ударение в центре слова на звуке "у") :)

23.04.2004 | 18:11
Калуга
Ст: 19 | Комм: 52
Такой подход не прокатил. :( Приклада валится при смене рабочих столов в WM-е. Когда на другом рабочем столе нет открытых окон, то XGetInputFocus не "отдает" окошка на котором фокус (типа, ну нет его). Хотя по логике, должна бы была отдавать окошко с id 0x35 что является что-то вроде X root window.
Читаем и разбираемся дальше ...

19.05.2004 | 22:03
Калуга
Ст: 19 | Комм: 52
Оторвался от диплома, продолжил изыски в данном направлении.
Читая X lib Programming Manual и X Window System Programmer's Guide наткнулся на следующую интересующую меня вещь:
Globally Active Input - The client expects keyboard input and
explicitly sets the input focus, even when it is in windows the client does
not own. An example would be a client with a scroll bar that wants to allow
users to scroll the window without disturbing the input focus even if it
is in some other window. It wants to acquire the input focus when the user
clicks in the scrolled region but not when the user clicks in the scroll bar
itself. Thus, it wants to prevent the window manager from setting the input
focus to any of its windows. 

Добиться такого можно путем установки WMHints.input = false через XSetWMHints() и к этому надо еще манипуляции с атомом WM_TAKE_FOCUS производить. Вот на счет последнего, надо разобраться и почитать ... не совсем понятно как оно работает :(

19.05.2004 | 23:30
Калуга
Ст: 19 | Комм: 52
Нашел доку с примером сырца, пойду пробовать ...

20.05.2004 | 20:06
Калуга
Ст: 19 | Комм: 52
Попробывал, все не то ... :(

Читаю дальше ...

Объект внимания: XEvents, XGrabKeyboard, XGrabKey

25.05.2004 | 18:55
Калуга
Ст: 19 | Комм: 52
Хорошее дело Open Source!
Пустив диплом по боку, залез в исходники fluxbox-а. Посмотреть, как там отслеживаются нажатия клавиш, на которые можно повесить какие-нибудь события. Оказалось все просто, как и все гениальное. Они пользуют XGrabKey. Вытаскивают "клавиши" из конфига, а потом все по очереди с различными модификаторами подсовывают XGrabKey.

Посмотрев на такое дело быстренько накалякал маленькую прогу, все работает в лучшем виде :)

Буду дальше воплащать свои задумки в жизнь :)

21.06.2004 | 23:18
Калуга
Ст: 19 | Комм: 52
?: Как создать окно, которое при ЛЮБЫХ обстоятельствах/событиях будет отображаться поверх других окон ...

Ваш комментарий:


Уведомлять о новых ответах на это сообщение?

Предыдущая запись Следующая запись

©"Linuxportal.Ru". Материалы сайта можно
использовать свободно при условии
сохранения этой свободы при дальнейшем
распространении, если явно не указано иное

Дизайн и программирование:


Powered by pMachine Pro 2.3

Поставьте
нашу кнопку:
Получить код кнопки
Linux Portal.ru ::: Линукс Портал.ру
Наш партнер: