From a4e22d48b81a28dbbed054b7a7eb053555cb9ddb Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 9 Jan 2018 17:42:08 -0500 Subject: [PATCH] feature/popup: add :ignore support to :popup Allows you to ignore certain buffers. Helpful for plugins that manage their own windows, like magit. To use: (set! :popup "^\\*magit" :ignore) Relevant to #337 --- modules/feature/popup/config.el | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/modules/feature/popup/config.el b/modules/feature/popup/config.el index a02137738..9fdf12302 100644 --- a/modules/feature/popup/config.el +++ b/modules/feature/popup/config.el @@ -121,20 +121,23 @@ ALIST supports one custom parameter: `size', which will resolve to `window-height' or `window-width' depending on `side'." `(let ((alist ,alist) (parameters ,parameters)) - ,(when alist - `(when-let* ((size (cdr (assq 'size alist))) - (side (or (cdr (assq 'side (append alist +popup-default-alist))) 'bottom))) - (map-delete alist 'size) - (map-put alist (if (memq side '(left right)) - 'window-width - 'window-height) - size))) - (prog1 (push (append (list ,condition '(+popup-buffer)) - alist - (list (cons 'window-parameters parameters))) - +popup--display-buffer-alist) - (when (bound-and-true-p +popup-mode) - (setq display-buffer-alist +popup--display-buffer-alist))))) + (if (eq alist :ignore) + (push (list ,condition nil) +popup--display-buffer-alist) + ,(when alist + `(when-let* ((size (cdr (assq 'size alist))) + (side (or (cdr (assq 'side (append alist +popup-default-alist))) + 'bottom))) + (map-delete alist 'size) + (map-put alist (if (memq side '(left right)) + 'window-width + 'window-height) + size))) + (prog1 (push (append (list ,condition '(+popup-buffer)) + alist + (list (cons 'window-parameters parameters))) + +popup--display-buffer-alist))) + (when (bound-and-true-p +popup-mode) + (setq display-buffer-alist +popup--display-buffer-alist)))) ;;