From fa22dcc7a46de75428d852ab7d5b54b71d6b89c1 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 13 Mar 2018 02:00:20 -0400 Subject: [PATCH] ui/posframe: refactor +posframe|delete-on-escape --- modules/ui/posframe/autoload.el | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/ui/posframe/autoload.el b/modules/ui/posframe/autoload.el index 7ff93493b..dd16f0dad 100644 --- a/modules/ui/posframe/autoload.el +++ b/modules/ui/posframe/autoload.el @@ -15,8 +15,13 @@ ;;;###autoload (defun +posframe|delete-on-escape () "TODO" - (when (cl-loop for frame in (frame-list) - if (and (frame-parameter frame 'posframe-buffer) - (not (frame-visible-p frame))) - return t) - (posframe-delete-all))) + (unless (frame-parameter (selected-frame) 'posframe-buffer) + (cl-loop for frame in (frame-list) + if (and (frame-parameter frame 'posframe-buffer) + (not (frame-visible-p frame))) + do (delete-frame frame)) + (dolist (buffer (buffer-list)) + (let ((frame (buffer-local-value 'posframe--frame buffer))) + (when (and frame (or (not (frame-live-p frame)) + (not (frame-visible-p frame)))) + (posframe--kill-buffer buffer))))))