LINUX.ORG.RU

XGetGeometry\XGetWindowAttributes


0

0

hello, all.

почему subj возвращает координаты окна нестабильно --- то нули, то то, что на самом деле :( как то это удручает... я конечно могу и ConfigureNotify ловить и отслеживать координаты, но это ж фигня какая-то получается...


С ConfigureNotify тоже не все просто. Видишь ли, координаты окна считаются от левого верхнего угла родителя. А родитель у твоего окна -- оконный манагер. Вот от него у тебя может быть (0,0), а от рутового окна -- (x,y). Сначала тебе сервер координаты отправляет (относительно рамки, рисуемой манагером), потом манагер шлет тебе событие с реальными координатами (относительно рута).

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

Хм, б$я. И как тут быть? Что, идти по парентам пока до DefaultRootWindow не дойду? Жалко... подумаю как от этого вообще избавится...

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

А нафига тебе вообще заморочиваться с координатами окна? Твои координаты -- проблема WM. Пусть он ее решает как хочет.

Но если все-же очень нужно, то способ прост: получив ConfigureNotify, смотри в поле send_event. Если оно != 0, событие тебе послал WM. Бери из него координаты. Если оно == 0, событие пришло от сервера. Игнорируй его, потому что сервер тебе не скажет ничего нового по поводу координат: куда ты сказал ему окно покласть, туда он его и положит, если WM не запущен.

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