область рисования gtk не перерисовывает содержимое - PullRequest
0 голосов
/ 21 марта 2020

Я нахожусь в 64-битной системе Ubuntu 19.10

Исходные файлы:

https://drive.google.com/open?id=1I4ejOHNXqbAOkTbIyJR0lvldsAwiPPqI

Проблема:

Я работаю над простой программой для рисования, используя gtk и glade с c. Прямо сейчас я застрял в реализации отменного поведения. У меня две проблемы. Есть случаи, когда я нажимаю кнопку отмены.

1) Когда у меня есть один штрих или одна точка на холсте, он отлично работает, как я это испытал. Canvas очищается.

2) Если у меня на холсте два мазка или две точки, и если я щелкаю один раз «Отменить», холст не перерисовывается, если только я не рисую снова; если я щелкну дважды, он будет работать идеально, как в первом случае, холст очищается.

3) Если у меня более двух штрихов или двух точек на холсте, если я дважды щелкну кнопку отмены , программа перестает работать, ожидая от меня принудительного завершения.

Я новичок в использовании библиотек glade, gtk3 и cairo. Я искал о проблеме в течение нескольких дней. Тем не менее, ресурсы ограничены по сравнению с трендовыми фреймворками и библиотеками. Кроме того, я не мог решить проблему, которая мне нужна. Я признателен за любую помощь.

РЕДАКТИРОВАТЬ Я забыл добавить, что проблема остановки возникает после функции, on_undo_clicked выходит во второй раз (дважды отменить щелчок).

1 Ответ

0 голосов
/ 24 марта 2020

Я решил проблему.

В функции addPoint я забыл, что указатель следующего указателя структуры *1004* может быть висящим указателем. Это создает проблему.

...