emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/posframe d504867 33/40: Add posframe-refresh


From: Feng Shu
Subject: [elpa] externals/posframe d504867 33/40: Add posframe-refresh
Date: Wed, 5 Feb 2020 04:27:22 -0500 (EST)

branch: externals/posframe
commit d5048672606535e6632131979817e4d7591f8b08
Author: Feng Shu <address@hidden>
Commit: Feng Shu <address@hidden>

    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."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]