Есть ли способ изменить частоту события ConfigureNotify в X11?

У меня есть небольшая графическая программа, которая использует события ConfigureNotify для определения размера windows и перерисовки приложения. Однако события изменения размера кажутся несколько медленными при перетаскивании windows для изменения размера, что приводит к рывкам перерисовывания. Есть ли способ настроить этот показатель? Если это не так, есть ли способ обнаружить начало / конец изменения размера, чтобы я мог отложить перерисовку до тех пор, пока не будет достигнут конечный размер?

Нет, невозможно настроить частоту событий; они просто входят, как X-сервер считает нужным. Тем не менее, часть подергивания может быть именно потому, что вы обновляете окно сразу после события изменения размера (надеюсь, вы не сделаете это внутри обработчика событий …) Причина в том, что вы немедленно оставите X-сервер занятым своим живопись, давая ему немного времени, чтобы отправить события назад.

Мое стандартное решение для такого поведения: при изменении размера используйте таймер для перерисовки с регулярными интервалами (скажем, каждые 200 мс или около того). Используйте ширину и высоту, так как она находится в начале процедуры рисования (помните, что вы можете получать события изменения размера при рисовании!). Если с момента последнего события таймера не было изменения ширины / высоты, остановите таймер.

Я предлагаю использовать инструментарий Xt для реализации таймеров и других обратных вызовов; это намного проще в использовании, чем обычные звонки Xlib.