LINUX.ORG.RU

[X Window]Как узнать размер окна с границами?


0

0

Размер окну можно задать через XCreateWindow и XSetWMSizeHints.
Затем, оконный менеджер приделывает к окну границу (border/decoration).

Как после этого узнать окончательный размер окна, учитывая границы?

В спеке http://standards.freedesktop.org/wm-spec/wm-spec-latest.html про это не нашёл.

В документации к Qt как-то читал, что никак. Там этот косяк иксов обходился какими-то трюками. Возможно, с тех пор что-то изменилось.

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

>Узнать бы какими трюками (хаками/воркэраундами) это обходиться.

Это и не нужно обходить, приложение должно рисовать в своё окно. Окно вм с рамкой - задача вм.

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

http://doc.trolltech.com/4.4/geometry.html

from X11 Peculiarities:)

"
X11 provides no standard or easy way to get the frame geometry once the window is decorated. Qt solves this problem with nifty heuristics and clever code that works on a wide range of window managers that exist today. Don't be surprised if you find one where QWidget::frameGeometry() returns wrong results though.
"

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

что "и"? Ты предположил, что никак. По крайней мере в Qt - очень даже "как". Функцию я показал, она работает по крайней мере во всех популярных WM. Код там написан на голом Xlib, так что можно портировать.

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

Don't be surprised if you find one where QWidget::frameGeometry() returns wrong results though.

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