summaryrefslogtreecommitdiff
path: root/src/w32menu.c
diff options
context:
space:
mode:
authorGerd Möllmann <gerd@gnu.org>2022-12-31 09:04:56 +0100
committerGerd Möllmann <gerd@gnu.org>2022-12-31 09:04:56 +0100
commit716d676747119f9950861f9a64a8e7871b0082d4 (patch)
treeb71f94b50896736a007d6977c97679e1abd895a6 /src/w32menu.c
parent54ec3973e298c3d2b3d81484f80053d881694f88 (diff)
parent7493b4026fc74a51c76c5b614bc83b864af9bc31 (diff)
downloademacs-scratch/pkg.tar.gz
Merge remote-tracking branch 'origin/master' into scratch/pkgscratch/pkg
Diffstat (limited to 'src/w32menu.c')
-rw-r--r--src/w32menu.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/w32menu.c b/src/w32menu.c
index b10239d5cc6..5f06f4c4170 100644
--- a/src/w32menu.c
+++ b/src/w32menu.c
@@ -1073,7 +1073,10 @@ is_simple_dialog (Lisp_Object contents)
if (NILP (Fstring_equal (name, other)))
return false;
- /* Check there are no more options. */
+ /* Check there are no more options.
+
+ (FIXME: Since we use MB_YESNOCANCEL, we could also consider
+ dialogs with 3 options: Yes/No/Cancel as "simple". */
options = XCDR (options);
return !(CONSP (options));
}
@@ -1085,7 +1088,13 @@ simple_dialog_show (struct frame *f, Lisp_Object contents, Lisp_Object header)
UINT type;
Lisp_Object lispy_answer = Qnil, temp = XCAR (contents);
- type = MB_YESNO;
+ /* We use MB_YESNOCANCEL to allow the user the equivalent of C-g
+ when the Yes/No question is asked vya y-or-n-p or
+ yes-or-no-p. */
+ if (w32_yes_no_dialog_show_cancel)
+ type = MB_YESNOCANCEL;
+ else
+ type = MB_YESNO;
/* Since we only handle Yes/No dialogs, and we already checked
is_simple_dialog, we don't need to worry about checking contents