LINUX.ORG.RU

Х11 видимость окна

 ,


0

1

Как в х11 можно определить «видит» ли пользователь твое окно или оно перекрыто другим? В идеале еще бы и знать на «сколько» перекрыто...

★★★★

Последнее исправление: LinuxDebian (всего исправлений: 2)
Ответ на: комментарий от anonymous

Оно может показать геометрию, и признак того что все окна свернуты. Перечитал ман и не понял как узнать, что конкретное окно чем-то перекрыто.

С таким успехом можно просто узнать что сейчас активное:
xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW

Но я и без левых прог знаю когда мой софт теряет фокус. Мне нужно понять стоит ли рисовать дальше или нет...

LinuxDebian ★★★★
() автор топика
Последнее исправление: LinuxDebian (всего исправлений: 2)
Ответ на: комментарий от deep-purple

Не люблю бесполезные вещи. Хочу гламурную обоину которая не будет кушать в фоне даже жалкие доли процента ЦП.

LinuxDebian ★★★★
() автор топика
Последнее исправление: LinuxDebian (всего исправлений: 3)
Ответ на: комментарий от LinuxDebian

чот близкое нагуглилось by x11 overlay window только XQueryTree и далее там узнавать координаты и размеры и сравнивать со своим, так в итоге можно получить перекрываемые зоны.

deep-purple ★★★★★
()
Ответ на: комментарий от LinuxDebian

не забудь про воркспейсы - координаты могут быть те же, но вообще про другой вирт рабстол.

deep-purple ★★★★★
()
Ответ на: комментарий от LinuxDebian

Мне нужно понять стоит ли рисовать дальше или нет...

Разве оконное сообщение для отрисовки не предоставляет информацию об областях которые надо перерисовывать, а какие не надо? Если уж речь о Qt, то QPaintEvent полностью предоставляет такие данные, смысл оконного сообщения отрисовки на этом и строится, какая бы система ни была.

normann ★★★
()

XDamage extension?

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

QPaintEvent тебе скажет, что нужно перерисовывать статическое окно? Ты просто открыл окно и смотришь на него, оно висит, QPaintEvent не генерируются, все что дальше? Ты можешь рисовать по таймеру, можешь не рисовать. Как понять что нужно?

Суть QPaintEvent сказать что нужно перерисовать что-то, а не наоборот.

LinuxDebian ★★★★
() автор топика
Последнее исправление: LinuxDebian (всего исправлений: 3)
Ответ на: комментарий от anonymous

Какое предыдущее состояние оверлея было самым первым с которого можно начать запоминать это предыдущее состояние?

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

Ну да, ты прав, перекрытое так не поймать. Посмотри QRegion и QWidget::repaint().

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

но вообще если ты действительно зачем-то на qt пишешь обои, то тогда этими вопросами занимается твой тулкит, а не ты.

в случае qt, насколько я понимаю (не пишу на qt), тулкит случает expose и сам дёргает у твоих виджетов перерисование тогда, когда требуется, то есть, вроде, он и так уже делает то, что ты хочешь?

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