branch: master commit 4c31de20ff32669d38c3322f3c93f218a9b3d554 Merge: fe30ee8 272ca09 Author: tumashu <tuma...@163.com> Commit: GitHub <nore...@github.com>
Merge pull request #10 from manateelazycat/patch-1 Use posframe-hide-frame instead make-frame-invisible --- posframe.el | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/posframe.el b/posframe.el index 5b06d0c..7a568e6 100644 --- a/posframe.el +++ b/posframe.el @@ -5,7 +5,7 @@ ;; Author: Feng Shu <tuma...@163.com> ;; Maintainer: Feng Shu <tuma...@163.com> ;; URL: https://github.com/tumashu/posframe -;; Version: 0.4.0 +;; Version: 0.4.1 ;; Keywords: tooltip ;; Package-Requires: ((emacs "26")) @@ -372,7 +372,7 @@ you can use `posframe-delete-all' to delete all posframes." (posframe--set-frame-position posframe (posframe-run-poshandler - `(;All poshandlers will get info from this plist. + `( ;All poshandlers will get info from this plist. :position ,position :poshandler ,poshandler :font-height ,font-height @@ -475,7 +475,12 @@ This need PARENT-FRAME-WIDTH and PARENT-FRAME-HEIGHT" (cancel-timer posframe--timeout-timer)) (setq-local posframe--timeout-timer (run-with-timer - secs nil #'make-frame-invisible posframe)))) + secs nil #'posframe-hide-frame posframe)))) + +(defun posframe-hide-frame (frame) + "This function used to instead `make-frame-invisible' to make hide frame safely." + (when (frame-live-p frame) + (make-frame-invisible frame))) (defun posframe--run-refresh-timer (posframe repeat height min-height @@ -503,7 +508,7 @@ WIDTH and MIN-WIDTH." (let ((buffer-info (frame-parameter frame 'posframe-buffer))) (when (or (equal posframe-buffer (car buffer-info)) (equal posframe-buffer (cdr buffer-info))) - (make-frame-invisible frame))))) + (posframe-hide-frame frame))))) (defun posframe-delete (posframe-buffer) "Delete posframe which buffer POSFRAME-BUFFER." @@ -537,7 +542,7 @@ This posframe's buffer is POSFRAME-BUFFER." (interactive) (dolist (frame (frame-list)) (let ((buffer-info (frame-parameter frame 'posframe-buffer))) - (when buffer-info (make-frame-invisible frame))))) + (when buffer-info (posframe-hide-frame frame))))) ;;;###autoload (defun posframe-delete-all ()