Я новичок в xlib и хочу поймать событие при изменении содержимого окна. Например, если какая-то область изменилась. Я читал, что мне нужно использовать Xdamage для этого, и это мой кодXdamage: получить событие при изменении содержимого окна
Display* display = XOpenDisplay(NULL);
Window root = DefaultRootWindow(display);
XWindowAttributes attributes = {0};
XGetWindowAttributes(display, root, &attributes);
int width, height;
width = attributes.width;
height = attributes.height;
//XDAMAGE INIT
int damage_event, damage_error, test;
test = XDamageQueryExtension(display, &damage_event, &damage_error);
Damage damage = XDamageCreate(display, root, XDamageReportNonEmpty);
while (true){
XEvent event;
XNextEvent(display,&event);
//HERE I GET EVENT
XDamageSubtract(display,damage,None,None);
}
XCloseDisplay(display);
Итак, у меня есть рабочий пример, в котором я могу получить событие и его типы type.The, как я понимаю, являются Xlib типы - https://tronche.com/gui/x/xlib/events/types.html. Но как я могу узнать из события, что окно было изменено.
Вы хотите проверить возвращаемое значение 'XDamageQueryExtension'. Не гарантируется, что расширение фактически загружено. – tofro