[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/posframe 330cae2 15/40: Improve 'posframe-delete-frame'
From: |
Feng Shu |
Subject: |
[elpa] externals/posframe 330cae2 15/40: Improve 'posframe-delete-frame' |
Date: |
Wed, 5 Feb 2020 04:27:18 -0500 (EST) |
branch: externals/posframe
commit 330cae28b23af3bcf64d2e643cb44a6203e1082a
Author: Štěpán Němec <address@hidden>
Commit: Štěpán Němec <address@hidden>
Improve 'posframe-delete-frame'
We don't need to walk the frame list, because every posframe + buffer
pair is unique; there is at most one posframe for a single buffer, and
at most one buffer for a single posframe.
We also don't need to check the frame parameters, as the
posframe--frame buffer-local variable records the pertinent frame.
---
posframe.el | 24 ++++++++++--------------
1 file changed, 10 insertions(+), 14 deletions(-)
diff --git a/posframe.el b/posframe.el
index d41a7f4..ea0892f 100644
--- a/posframe.el
+++ b/posframe.el
@@ -130,6 +130,7 @@
;;; Code:
;; * posframe's code :CODE:
(require 'cl-lib)
+(eval-when-compile (require 'subr-x)) ; `when-let'
(defgroup posframe nil
"Pop a posframe (just a frame) at point"
@@ -677,20 +678,15 @@ WIDTH and MIN-WIDTH."
(posframe--kill-buffer buffer-or-name))
(defun posframe-delete-frame (buffer-or-name)
- "Kill child-frame of posframe.
-This posframe's buffer is BUFFER-OR-NAME."
- (dolist (frame (frame-list))
- (let ((buffer-info (frame-parameter frame 'posframe-buffer))
- (buffer (get-buffer buffer-or-name)))
- (when (or (equal buffer-or-name (car buffer-info))
- (equal buffer-or-name (cdr buffer-info)))
- (when buffer
- (with-current-buffer buffer
- (dolist (timer '(posframe--refresh-timer
- posframe--timeout-timer))
- (when (timerp timer)
- (cancel-timer timer)))))
- (delete-frame frame)))))
+ "Delete posframe pertaining to BUFFER-OR-NAME."
+ (when-let ((buffer (get-buffer buffer-or-name)))
+ (with-current-buffer buffer
+ (dolist (timer '(posframe--refresh-timer
+ posframe--timeout-timer))
+ (when (timerp timer)
+ (cancel-timer timer)))
+ (when (frame-live-p posframe--frame)
+ (delete-frame posframe--frame)))))
(defun posframe--kill-buffer (buffer-or-name)
"Kill posframe's buffer: BUFFER-OR-NAME."
- [elpa] externals/posframe d7f48a4 10/40: Merge pull request #40 from stepnem/current-buffer-bug, (continued)
- [elpa] externals/posframe d7f48a4 10/40: Merge pull request #40 from stepnem/current-buffer-bug, Feng Shu, 2020/02/05
- [elpa] externals/posframe 15ffbef 21/40: Revert "Improve 'posframe-delete-frame'", Feng Shu, 2020/02/05
- [elpa] externals/posframe d504867 33/40: Add posframe-refresh, Feng Shu, 2020/02/05
- [elpa] externals/posframe f335f92 24/40: Make the buffer in posframe dedicated, Feng Shu, 2020/02/05
- [elpa] externals/posframe 8108052 20/40: Merge pull request #42 from stepnem/refactor, Feng Shu, 2020/02/05
- [elpa] externals/posframe bb13933 25/40: Merge pull request #47 from yyoncho/master, Feng Shu, 2020/02/05
- [elpa] externals/posframe f390e35 27/40: Fix: Posframe is slow if emacs is built using athena toolkit #45, Feng Shu, 2020/02/05
- [elpa] externals/posframe b44c1ae 31/40: Merge pull request #50 from conao3/add-center-handler, Feng Shu, 2020/02/05
- [elpa] externals/posframe d75dc15 26/40: Fix: Frame not tall enough if line-spacing > 0 #48, Feng Shu, 2020/02/05
- [elpa] externals/posframe 8c636fc 11/40: Merge pull request #41 from stepnem/doc-string, Feng Shu, 2020/02/05
- [elpa] externals/posframe 330cae2 15/40: Improve 'posframe-delete-frame',
Feng Shu <=
- [elpa] externals/posframe 46ffb02 12/40: Rename posframe-buffer function parameter to buffer-or-name, Feng Shu, 2020/02/05
- [elpa] externals/posframe 85c9777 17/40: Touch up some doc strings, Feng Shu, 2020/02/05
- [elpa] externals/posframe dcc281c 34/40: Add some packages which use posframe, as examples., Feng Shu, 2020/02/05
- [elpa] externals/posframe bfd2e55 23/40: Update README, Feng Shu, 2020/02/05
- [elpa] externals/posframe 0e55b2b 37/40: autoload posframe-workable-p, Feng Shu, 2020/02/05
- [elpa] externals/posframe 913b90d 38/40: Fix: ivy-posframe flickering in macos, Feng Shu, 2020/02/05
- [elpa] externals/posframe d495ea9 18/40: posframe--create-posframe: Document return value, Feng Shu, 2020/02/05
- [elpa] externals/posframe c250771 40/40: Remove useless 'and, Feng Shu, 2020/02/05
- [elpa] externals/posframe 5b2e3fc 36/40: Force raise the current posframe., Feng Shu, 2020/02/05
- [elpa] externals/posframe 7bc5857 39/40: Fix: Position for font-height invalid #53, Feng Shu, 2020/02/05