Gtk Drawing Area не всегда рендерится в прокручиваемом окне

У меня есть область рисования внутри области просмотра внутри прокручиваемого окна. Изображение отображается хорошо, когда область рисования помещается внутри прокручиваемого окна. Но когда я запрашиваю размер больше, чем окно с прокруткой, область рисования не всегда перерисовывается при прокрутке вверх или вниз, и то же самое происходит, когда размер родительского окна изменяется. Что происходит, так это то, что я получаю область правильного размера внутри прокручиваемого окна, но это выглядит так, как будто внутри области рисования нет области, или как будто ничто не нарисовано в области рисования, которая иногда мигает с правильным рисунком наугад положения полос прокрутки. Я подключил обратный вызов к сигналу отрисовки, который печатает «рендер» при каждом вызове, и другой обратный вызов к сигналу изменения значения настроек полос прокрутки, которые печатают «прил.» К экрану при каждой прокрутке. Вывод терминала выглядит следующим образом

adj
adj
adj
adj
adj
1428919598 render
adj
adj
adj

Так что каждый раз, когда я вижу, что холст выглядит пустым, он отображается правильно, когда я вижу < ...> рендер. Следовательно, при быстрой прокрутке я получаю мерцающее изображение. Есть идеи о том, что может быть причиной этого?

0
задан 13 April 2015 в 13:10

1 ответ

Я портировал некоторый код от gtk2 до gtk3. Проблема, которой оказываются в новом сигнале, "тянет", который теперь заменяет "представлять-событие". В более старой версии я должен был создать контекст в обработчике сигналов, но новый обратный вызов имеет его как один из аргументов, и случается так, что тот, который должен использоваться.

0
ответ дан 13 April 2015 в 13:10

Другие вопросы по тегам:

Похожие вопросы: