X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Feditor.c;h=51ac61b211851e76e42e70c09e7c91661510d0b2;hp=25b7af27e0b82ddfe3a3daac10deb0f0dc04390d;hb=8c3660a79a3ca587049365e4a1f1fad4ce063dc6;hpb=bd43ed6d58b80faf3c927dc6f3a41284676d25d7 diff --git a/src/editor.c b/src/editor.c index 25b7af27..51ac61b2 100644 --- a/src/editor.c +++ b/src/editor.c @@ -11073,7 +11073,7 @@ static void HandleDrawingAreas(struct GadgetInfo *gi) SetElementButton(lx, ly, new_element, button); } } - else + else if (!button_release_event) { int type_id = gi->custom_type_id; int pos = sx * drawingarea_info[type_id].area_ysize + sy; @@ -11534,6 +11534,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 +11556,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;