Как наблюдать за любыми движениями окон с помощью xlib?
Как отследить событие перемещения для всех окон? Например, если пользователь переместит окно "Pluma", мой демон получит имя окна и новые координаты.
if(XCheckMaskEvent(display, -1, &event))
{
if(event.type == ConfigureNotify)
{
moved += event.xmotion.x + event.xmotion.y;
//qDebug << moved;
}
}
Я пытался отслеживать это так, но это не работает...
1 ответ
Решение
Вам нужно выбрать SubstructureNotify
Сначала замаскируйте корневое окно:
XSelectInput(display, XDefaultRootWindow(display), SubstructureNotifyMask );
Таким образом, вы говорите X-серверу: "Меня интересуют события перемещения / изменения размера / удаления / создания детей в корневом окне"