SDL: [Windows]: dialog: Add `OFN_OVERWRITEPROMPT` to save dialogs (#12782) (a4e19)

From a4e19dc567280a710e8677044e43c9b03ecf7e76 Mon Sep 17 00:00:00 2001
From: Adam Kewley <[EMAIL REDACTED]>
Date: Wed, 9 Apr 2025 06:33:29 +0200
Subject: [PATCH] [Windows]: dialog: Add `OFN_OVERWRITEPROMPT` to save dialogs
 (#12782)

(cherry picked from commit 0add037803ef319d7e3478202151a425758a9995)
---
 src/dialog/windows/SDL_windowsdialog.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/dialog/windows/SDL_windowsdialog.c b/src/dialog/windows/SDL_windowsdialog.c
index 2de224feba642..6822944fc0829 100644
--- a/src/dialog/windows/SDL_windowsdialog.c
+++ b/src/dialog/windows/SDL_windowsdialog.c
@@ -516,6 +516,14 @@ static void ShowFileDialog(SDL_DialogFileCallback callback, void *userdata, SDL_
 
     filters_str = win_get_filters(filters, nfilters);
 
+    DWORD flags = 0;
+    if (allow_many) {
+        flags |= OFN_ALLOWMULTISELECT;
+    }
+    if (is_save) {
+        flags |= OFN_OVERWRITEPROMPT;
+    }
+
     if (!filters_str && filters) {
         callback(userdata, NULL, -1);
         SDL_free(args);
@@ -526,7 +534,7 @@ static void ShowFileDialog(SDL_DialogFileCallback callback, void *userdata, SDL_
     args->filters_str = filters_str;
     args->default_file = default_location ? SDL_strdup(default_location) : NULL;
     args->parent = window;
-    args->flags = allow_many ? OFN_ALLOWMULTISELECT : 0;
+    args->flags = flags;
     args->callback = callback;
     args->userdata = userdata;
     args->title = title ? SDL_strdup(title) : NULL;