LINUX.ORG.RU

Проблемы с Xlib


0

0

Есть такая проблема. Из программы запускается другая другая графическая программа (текстовый редактор). В какой-то момент редактор должен получить фокус (см фрагмент кода):

XRaiseWindow(display, wndw); XGetGeometry(display, wndw, &root_return, &x_return, &y_return, &width_return, &height_return, &border_width_return, &depth_return); XWarpPointer(display, NULL, wndw, 0, 0, width_return, height_return, width_return/2, height_return/2); XSetInputFocus(display, wndw, RevertToParent, NULL);

Иногда это работает, но порой получаю странный результат (GNOME). Заголовок становится активным, курсор позиционируется на середину окна, но окно остаётся скрыто другими окнами. А мне очень надо, чтобы окно было на самом верху.


Перед тем как производить операции, касающиеся менеджеров окон GNOME и KDE, нужно ознакомиться с правилами ICCCM: http://www.x.org/X11R6.8.1/docs/ICCCM/icccm.pdf

И про фокус там, если не ошибаюсь, сказано, что нужно сначала послать специальное сообщение менеджеру окон, и только тогда устанавливать фокус. Советую проверить

erDiZz

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

Проблему решил. Приведенный код правильный. Мне передавалася неправильная переменная wndw. Теперь все работает.

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