fix(messages): recognize cmdline one_key/number prompt State (#34206)

Problem:  Since 48e2a736, prompt messages are handled by an actual
          active cmdline, resulting in `State` no longer being equal
          to `MODE_CONFIRM` which is used in some places. E.g. to
          specify the current `mode()` or to re-emit a confirm message.
Solution: Replace `MODE_CONFIRM` with a new `MODE_CMDLINE` sub-mode when
          `ccline.one_key/mouse_used` is set. Use it to avoid clearing
          mouse_used prompt messages, and to re-emit one_key messages
          (when ext_messages is inactive, for which this is unnecessary).
(cherry picked from commit e876a739ee)
This commit is contained in:
luukvbaal
2025-06-09 18:57:28 +02:00
committed by github-actions[bot]
parent adf31505d8
commit 89959ab9dc
10 changed files with 62 additions and 26 deletions

View File

@@ -590,8 +590,8 @@ void ui_check_mouse(void)
checkfor = MOUSE_INSERT;
} else if (State & MODE_CMDLINE) {
checkfor = MOUSE_COMMAND;
} else if (State == MODE_CONFIRM || State == MODE_EXTERNCMD) {
checkfor = ' '; // don't use mouse for ":confirm" or ":!cmd"
} else if (State == MODE_EXTERNCMD) {
checkfor = ' '; // don't use mouse for ":!cmd"
}
// mouse should be active if at least one of the following is true: