Move modeline hiding to core-popups

This commit is contained in:
Henrik Lissner 2017-02-21 03:44:02 -05:00
parent f1b2c18476
commit 2c841b512d
2 changed files with 13 additions and 23 deletions

View file

@ -106,6 +106,10 @@ for the obvious :align t on every rule."
"Minor mode for popup windows." "Minor mode for popup windows."
:init-value nil :init-value nil
:keymap doom-popup-mode-map :keymap doom-popup-mode-map
;; Don't show modeline in popup windows without a :modeline rule. If one
;; exists and it's a symbol, use `doom-modeline' to grab the format. If
;; non-nil, show the mode-line as normal. If nil (or omitted), then hide the
;; modeline entirely.
(if (and (not doom-popup-mode) (if (and (not doom-popup-mode)
doom-hide-modeline-mode) doom-hide-modeline-mode)
(doom-hide-modeline-mode -1) (doom-hide-modeline-mode -1)
@ -114,14 +118,13 @@ for the obvious :align t on every rule."
(not modeline)) (not modeline))
(doom-hide-modeline-mode +1)) (doom-hide-modeline-mode +1))
((symbolp modeline) ((symbolp modeline)
(let ((doom--hidden-modeline-format (+doom-modeline modeline))) (let ((doom--hidden-modeline-format (doom-modeline modeline)))
(doom-hide-modeline-mode +1)))))) (doom-hide-modeline-mode +1)))))))
(unless doom-popup-mode
(mapc (lambda (cfg) (set-window-parameter nil cfg nil))
'(popup no-other-window noesc)))
(set-window-dedicated-p nil doom-popup-mode))
(put 'doom-popup-mode 'permanent-local t) (put 'doom-popup-mode 'permanent-local t)
;; Hide modeline in completion popups
(@add-hook (completion-in-region-mode completion-list-mode) 'doom-hide-modeline-mode)
(defun doom-popup--init (window &optional plist) (defun doom-popup--init (window &optional plist)
"Initializes a window as a popup window. Sets custom window parameters and "Initializes a window as a popup window. Sets custom window parameters and
enables `doom-popup-mode'." enables `doom-popup-mode'."
@ -171,6 +174,10 @@ properties."
(when (doom-popup-p window) (when (doom-popup-p window)
(with-selected-window window (with-selected-window window
(doom-popup-mode -1) (doom-popup-mode -1)
(unless doom-popup-mode
(mapc (lambda (cfg) (set-window-parameter window cfg nil))
'(popup no-other-window noesc autokill)))
(set-window-dedicated-p window nil)
(when doom-popup-remember-history (when doom-popup-remember-history
(setq doom-popup-history (list (doom--popup-data window)))) (setq doom-popup-history (list (doom--popup-data window))))
(when (window-parameter window 'autokill) (when (window-parameter window 'autokill)

View file

@ -48,23 +48,6 @@
(lambda () (set-face-attribute 'mode-line nil :background doom--visual-bell-bg)))) (lambda () (set-face-attribute 'mode-line nil :background doom--visual-bell-bg))))
;; Don't show modeline in popup windows without a :modeline rule. If one exists
;; and it's a symbol, use `doom-modeline' to grab the format. If nil, show the
;; mode-line as normal. If t, then hide the modeline entirely.
(@add-hook doom-popup-mode
(if (and (not doom-popup-mode)
doom-hide-modeline-mode)
(doom-hide-modeline-mode -1)
(let ((modeline (plist-get doom-popup-rules :modeline)))
(cond ((eq modeline 'nil)
(doom-hide-modeline-mode +1))
((symbolp modeline)
(let ((doom--hidden-modeline-format (+doom-modeline modeline)))
(doom-hide-modeline-mode +1)))))))
(@add-hook (completion-in-region-mode completion-list-mode) 'doom-hide-modeline-mode)
;; Keep `+doom-modeline-current-window' up-to-date ;; Keep `+doom-modeline-current-window' up-to-date
(defvar +doom-modeline-current-window (frame-selected-window)) (defvar +doom-modeline-current-window (frame-selected-window))
(defun +doom-modeline|set-selected-window (&rest _) (defun +doom-modeline|set-selected-window (&rest _)