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;