Я просто нарисовать конкретное содержание в GtkTextView в «рисовать» сигнал,Рисунок в GtkTextView, то очистка
на следующей эмиссии сигнала рисую разные вещи в GtkTextView.
В следующем вызове сигнала, если нет ничего, чтобы его нарисовать, он очищает все предыдущие чертежи, что хорошо.
Но когда он собирается нарисовать новый контент, он рисует все предыдущие одновременно, а не только необходимый. Это нехорошо.
Я пробовал много вещей, чтобы предотвратить такое поведение, все возможные комбинации с cairo_save()
и cairo_restore()
, кажется, не делает это.
Как я могу заставить его не рисовать каждый предыдущий рисунок сразу, а только новый?
Почему вы возитесь с сигналом ничьей GtkTextView? Я не уверен, что это поддерживается GTK. Во всяком случае, как вы вызываете перерисовки? Вы называете что-то вроде https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-queue-draw? –
Это единственный способ редактировать собственный cajro_t виджета. Я подключаю сигнал и проверяю состояние проверки. Это ведет себя странно, и я не могу этого понять. Не могу понять, что это шаблон вообще. Он ничего не будет рисовать в первый раз, сигнал должен быть испущен несколько раз, чтобы получить контент. очередь в очереди делает незначительную разницу, но я все равно использую ее. Я думаю, что сигнал излучается очень часто, в основном из-за анимации курсора. (blinking/state w/e) – Malina
@UliSchlachter Я хочу, чтобы он рисовал разные вещи, один раз, каждый раз, когда я хочу и очищаю предыдущие рисунки. Независимо от того, что я пробовал, он уже делает это, но всегда что-то не так. – Malina