Я нахожусь в 64-битной системе Ubuntu 19.10
Исходные файлы:
https://drive.google.com/open?id=1I4ejOHNXqbAOkTbIyJR0lvldsAwiPPqI
Проблема:
Я работаю над простой программой для рисования, используя gtk и glade с c. Прямо сейчас я застрял в реализации отменного поведения. У меня две проблемы. Есть случаи, когда я нажимаю кнопку отмены.
1) Когда у меня есть один штрих или одна точка на холсте, он отлично работает, как я это испытал. Canvas очищается.
2) Если у меня на холсте два мазка или две точки, и если я щелкаю один раз «Отменить», холст не перерисовывается, если только я не рисую снова; если я щелкну дважды, он будет работать идеально, как в первом случае, холст очищается.
3) Если у меня более двух штрихов или двух точек на холсте, если я дважды щелкну кнопку отмены , программа перестает работать, ожидая от меня принудительного завершения.
Я новичок в использовании библиотек glade, gtk3 и cairo. Я искал о проблеме в течение нескольких дней. Тем не менее, ресурсы ограничены по сравнению с трендовыми фреймворками и библиотеками. Кроме того, я не мог решить проблему, которая мне нужна. Я признателен за любую помощь.
РЕДАКТИРОВАТЬ Я забыл добавить, что проблема остановки возникает после функции, on_undo_clicked выходит во второй раз (дважды отменить щелчок).