Merge branch 'retain-echo-area-until-input' of https://github.com/medranocalvo/exwm into medranocalvo/retain-echo-area-until-input

This commit is contained in:
Chris Feng 2019-02-06 00:00:00 +00:00
commit 225c68d4ce
2 changed files with 26 additions and 3 deletions

View file

@ -128,6 +128,7 @@ Please manually run the hook `exwm-workspace-list-change-hook' afterwards.")
(defvar exwm-workspace--workareas nil "Workareas (struts excluded).")
(defvar exwm-input--during-command)
(defvar exwm-input--event-hook)
(defvar exwm-layout-show-all-buffers)
(defvar exwm-manage--desktop)
(declare-function exwm-input--on-buffer-list-update "exwm-input.el" ())
@ -1221,7 +1222,18 @@ Please check `exwm-workspace--minibuffer-own-frame-p' first."
input-method-use-echo-area)
(setq exwm-workspace--display-echo-area-timer
(run-with-timer exwm-workspace-display-echo-area-timeout nil
#'exwm-workspace--on-echo-area-clear)))))
#'exwm-workspace--echo-area-maybe-clear)))))
(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)
;; 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))))
(defun exwm-workspace--on-echo-area-clear ()
"Run in echo-area-clear-hook to hide echo area container."
@ -1598,6 +1610,9 @@ applied to all subsequently created X frames."
(add-hook 'after-make-frame-functions
#'exwm-workspace--on-after-make-frame)
(add-hook 'delete-frame-functions #'exwm-workspace--on-delete-frame)
(when (exwm-workspace--minibuffer-own-frame-p)
(add-hook 'exwm-input--event-hook
#'exwm-workspace--on-echo-area-clear))
;; Switch to the first workspace
(exwm-workspace-switch 0 t)
;; Prevent frame parameters introduced by this module from being
@ -1619,6 +1634,9 @@ applied to all subsequently created X frames."
#'exwm-workspace--on-after-make-frame)
(remove-hook 'delete-frame-functions
#'exwm-workspace--on-delete-frame)
(when (exwm-workspace--minibuffer-own-frame-p)
(remove-hook 'exwm-input--event-hook
#'exwm-workspace--on-echo-area-clear))
;; Hide & reparent out all frames (save-set can't be used here since
;; X windows will be re-mapped).
(setq exwm-workspace--current nil)