diff options
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/rmc.el | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/lisp/emacs-lisp/rmc.el b/lisp/emacs-lisp/rmc.el index 542c96512f5..bfd7434be9a 100644 --- a/lisp/emacs-lisp/rmc.el +++ b/lisp/emacs-lisp/rmc.el @@ -162,8 +162,10 @@ dialogs. Otherwise, the function will always use text-mode dialogs. The return value is the matching entry from the CHOICES list. -If LONG-FORM, do a `completing-read' over the NAME elements in -CHOICES instead. +If LONG-FORM is non-nil, do a `completing-read' over the NAME elements +in CHOICES instead. In this case, GUI dialog is not used, regardless +of the value of `use-dialog-box' and whether the function was invoked +via a mouse gesture. Usage example: @@ -177,8 +179,9 @@ Usage example: prompt choices help-string show-help))) (defun read-multiple-choice--short-answers (prompt choices help-string show-help) - (let* ((prompt-choices - (if show-help choices (append choices '((?? "?"))))) + (let* ((dialog-p (use-dialog-box-p)) + (prompt-choices + (if (or show-help dialog-p) choices (append choices '((?? "?"))))) (altered-names (mapcar #'rmc--add-key-description prompt-choices)) (full-prompt (format @@ -192,16 +195,14 @@ Usage example: (setq buf (rmc--show-help prompt help-string show-help choices altered-names))) (while (not tchar) - (message "%s%s" - (if wrong-char - "Invalid choice. " - "") - full-prompt) + (unless dialog-p + (message "%s%s" + (if wrong-char + "Invalid choice. " + "") + full-prompt)) (setq tchar - (if (and (display-popup-menus-p) - last-input-event ; not during startup - (consp last-nonmenu-event) - use-dialog-box) + (if dialog-p (x-popup-dialog t (cons prompt |