Don't intercept evil-force-normal-state in popups

If we remap evil-force-normal-state, we're bypassing all the useful
cleanup hooks attached to +evil-esc-hook, which is bothersome in popups
we want to do some editing in.
This commit is contained in:
Henrik Lissner 2017-05-19 13:04:14 +02:00
parent 8422cbd172
commit 914b0fae43

View File

@ -278,15 +278,21 @@ properties."
(after! evil
(let ((map doom-popup-mode-map))
(define-key map [remap evil-window-delete] 'doom/popup-close)
(define-key map [remap evil-save-modified-and-close] 'doom/popup-close)
(define-key map [remap evil-window-move-very-bottom] 'ignore)
(define-key map [remap evil-window-move-very-top] 'ignore)
(define-key map [remap evil-window-move-far-left] 'ignore)
(define-key map [remap evil-window-move-far-right] 'ignore)
(define-key map [remap evil-window-split] 'ignore)
(define-key map [remap evil-window-vsplit] 'ignore)
(define-key map [remap evil-force-normal-state] 'doom/popup-close-maybe))
(define-key map [remap evil-window-delete] #'doom/popup-close)
(define-key map [remap evil-save-modified-and-close] #'doom/popup-close)
(define-key map [remap evil-window-move-very-bottom] #'ignore)
(define-key map [remap evil-window-move-very-top] #'ignore)
(define-key map [remap evil-window-move-far-left] #'ignore)
(define-key map [remap evil-window-move-far-right] #'ignore)
(define-key map [remap evil-window-split] #'ignore)
(define-key map [remap evil-window-vsplit] #'ignore))
(defun doom|popup-close-maybe ()
"Close the current window if it's a popup with no :noesc property."
(when (and (doom-popup-p)
(not (doom-popup-prop :noesc)))
(delete-window)))
(add-hook '+evil-esc-hook #'doom|popup-close-maybe)
(defun doom|popup-close-all-maybe ()
"Close popups with an :autoclose property when pressing ESC from normal