LINUX.ORG.RU

Выставление позиции скролла в GtkScrolledWindow, содержащей GtkTextView в качестве потомка

 ,


0

1

Здравствуйте, столкнулся с проблемой выставления позиции скролла в GtkScrolledWindow, в котором в качестве потомка сидит GtkTextView с огромной кучей текста внутри.
Изначально GtkTextView пустой. И потом за раз в него впихивается два-три мегабайта текста не считая картинок. Сразу после вставки текста пытаюсь выставить позицию скролла через такой код:

gtk_text_buffer_get_iter_at_line_offset(text_buff, &iter, line, offset);
GtkTextMark* line_mark = gtk_text_buffer_create_mark(text_buff, NULL, &iter, TRUE);
gtk_text_view_scroll_to_mark(text_view, line_mark, 0.0, TRUE, 0.0, 0.0);
/*можно использовать gtk_text_view_scroll_to_iter*/
gtk_text_buffer_delete_mark(text_buff, line_mark);
Проблема в том, что отображение текста как бы размазано во времени. Уже после того, как я вставил текст и пытаюсь выставить позицию скрола текст продолжает отрисовываться. И естественно скролл сползает.
Пытался вещать выставление скролла на g_timeout_add и на кнопку. Работает отлично. Но не то. Нужно автоматом.
Думается мне, нужно блокировать GtkScrolledWindow на время вставки текста и его отрисовки. Но вот как найти это время? Возможно существует некий сигнал, который оповещает приложение о том, что текст отрисовался полностью? Если что код тут

Решение найдено.

Нашел простое решение прямо в официальной документации. Ссыль.

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