I've made a patch to fix it, but it's kinda large, involves moving drawing_prompt_to_save() from drawing.c to file.c
because changing drawing_prompt_to_save() to use file_save_as_dialog() introduces 'gpaint_canvas' dependency to it's prototype in drawing.h, including canvas.h wouldn't make sense (due to dependency loop). So I justified by take it as a file-related function and move it to file.c, changing it's name along the way. Changes summary: drawing.c: remove the drawing_prompt_to_save() function drawing.h: remove drawing_prompt_to_save() prototype file.c: change return type of file_save_as_dialog() from 'void' to 'int' and change the code to return successfulness of saving, 'TRUE' if image was saved, 'FALSE' if otherwise (user cancel or write error). file.c: add file_prompt_to_save() [formerly drawing_prompt_to_save() from drawing.c] with argument type changed from 'gpaint_drawing' to 'gpaint_canvas', return type changed from 'gboolean' to 'int' and changed the code to call file_save_as_dialog() in case of untitled drawing, instead of directly invoking drawing_save(). file.h: change return type of file_save_as_dialog() from 'void' to 'int' file.h: add a prototype of file_prompt_to_save() main.c: add '#include "file.h"' main.c: change all of 'drawing_prompt_to_save(canvas->drawing)' to 'file_prompt_to_save(canvas)' menu.c: change all of 'drawing_prompt_to_save(canvas->drawing)' to 'file_prompt_to_save(canvas)' Regards, Nachanon
use_saveas_at_exit.diff
Description: Binary data