suggestion: clean echo area with a delay when minibuffer is detached
Closed this issue · 1 comments
QiangF commented
When minibuffer is detached, it will block the modeline if it is not cleared. So here is my suggestion, can you please merge it to the master branch:
(defun exwm-workspace--echo-area-maybe-clear ()
"Eventually clear the echo area container."
(exwm--log)
(if (not (current-message))
(exwm-workspace--on-echo-area-clear)
;; in case the echo area is detached, clean echo area so it doesn't block the modeline
;; but with a delay so user can view the echoed message
(when (exwm-workspace--minibuffer-own-frame-p)
(unless (exwm-workspace--minibuffer-attached-p)
;; cancel previous timer if one is set
(cancel-function-timers 'exwm-workspace--on-echo-area-clear)
(run-with-timer exwm-workspace-display-echo-area-timeout nil
#'exwm-workspace--on-echo-area-clear)))
;; Reschedule.
(cancel-timer exwm-workspace--display-echo-area-timer)
(setq exwm-workspace--display-echo-area-timer
(run-with-timer exwm-workspace-display-echo-area-timeout nil
#'exwm-workspace--echo-area-maybe-clear))))
ch11ng commented
This used to be the default behavior. The problem is how much time messages should be displayed.
We end up with not hiding echo area automatically. Users can still hide it with some input event (a click or a key press).