X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Feditor.c;h=6f750d3b1df0f3ba0199ecea1b2b89209bd2e639;hp=b5aa6fb3c900f905c0a13b9d3c48f88ebcd75e9a;hb=81db33c45aa3bb6cf5c2650855795cf524e2c943;hpb=2ad91a136a32c9ea721e582fa507f675e82d9f19 diff --git a/src/editor.c b/src/editor.c index b5aa6fb3..6f750d3b 100644 --- a/src/editor.c +++ b/src/editor.c @@ -11208,11 +11208,14 @@ static void HandleDrawingAreas(struct GadgetInfo *gi) PickDrawingElement(button, drawingarea_info[type_id].value[pos]); } - break; + /* do not mark level as changed when picking element from drawing area */ + return; default: break; } + + level.changed = TRUE; } static void HandleCounterButtons(struct GadgetInfo *gi) @@ -11534,6 +11537,15 @@ static void HandleCheckbuttons(struct GadgetInfo *gi) } else if (type_id == ED_CHECKBUTTON_ID_CUSTOM_USE_TEMPLATE) { + boolean template_related_changes_found = FALSE; + int i; + + /* check if any custom or group elements have been changed */ + for (i = 0; i < NUM_FILE_ELEMENTS; i++) + if ((IS_CUSTOM_ELEMENT(i) || IS_GROUP_ELEMENT(i)) && + element_info[i].modified_settings) + template_related_changes_found = TRUE; + if (level.use_custom_template && !fileExists(getGlobalLevelTemplateFilename())) { @@ -11547,6 +11559,7 @@ static void HandleCheckbuttons(struct GadgetInfo *gi) } if (level.use_custom_template && + template_related_changes_found && !Request("Discard changes and use level template?", REQ_ASK)) { level.use_custom_template = FALSE;