branch: externals/posframe
commit d5048672606535e6632131979817e4d7591f8b08
Author: Feng Shu <[email protected]>
Commit: Feng Shu <[email protected]>
Add posframe-refresh
---
posframe.el | 34 ++++++++++++++++++++++++++++++++--
1 file changed, 32 insertions(+), 2 deletions(-)
diff --git a/posframe.el b/posframe.el
index 20750ec..168a4c6 100644
--- a/posframe.el
+++ b/posframe.el
@@ -610,11 +610,11 @@ It will set the size by the POSFRAME's HEIGHT, MIN-HEIGHT
WIDTH and MIN-WIDTH."
(if (and width height)
(unless (equal posframe--last-posframe-size
- (cons width height))
+ (list height min-height width min-width))
(fit-frame-to-buffer
posframe height min-height width min-width)
(setq-local posframe--last-posframe-size
- (cons width height)))
+ (list height min-height width min-width)))
(fit-frame-to-buffer
posframe height min-height width min-width)))
@@ -672,6 +672,36 @@ WIDTH and MIN-WIDTH."
frame height min-height width min-width)))
posframe height min-height width min-width)))))
+(defun posframe-refresh (buffer-or-name)
+ "Refresh posframe pertaining to BUFFER-OR-NAME.
+
+For example:
+
+ (defvar buf \" *test*\")
+ (posframe-show buf)
+
+ (with-current-buffer buf
+ (erase-buffer)
+ (insert \"ffffffffffffff\")
+ (posframe-refresh buf))
+
+User can use posframe-show's :refresh argument,
+to do similar job:
+
+ (defvar buf \" *test*\")
+ (posframe-show buf :refresh 0.25)
+
+ (with-current-buffer buf
+ (erase-buffer)
+ (insert \"ffffffffffffff\"))"
+ (dolist (frame (frame-list))
+ (let ((buffer-info (frame-parameter frame 'posframe-buffer)))
+ (when (or (equal buffer-or-name (car buffer-info))
+ (equal buffer-or-name (cdr buffer-info)))
+ (with-current-buffer buffer-or-name
+ (apply #'fit-frame-to-buffer
+ frame posframe--last-posframe-size))))))
+
(defun posframe-hide (buffer-or-name)
"Hide posframe pertaining to BUFFER-OR-NAME.
BUFFER-OR-NAME can be a buffer or a buffer name."