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

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

[elpa] externals/corfu a353a94291 1/5: Make corfu--frame-timer a frame-p


From: ELPA Syncer
Subject: [elpa] externals/corfu a353a94291 1/5: Make corfu--frame-timer a frame-parameter
Date: Thu, 17 Nov 2022 15:57:28 -0500 (EST)

branch: externals/corfu
commit a353a94291b467efee0c452d396619cc5671736c
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Make corfu--frame-timer a frame-parameter
---
 corfu.el | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/corfu.el b/corfu.el
index c1eac3ec24..3c96919233 100644
--- a/corfu.el
+++ b/corfu.el
@@ -294,9 +294,6 @@ The completion backend can override this with
 (defvar corfu--frame nil
   "Popup frame.")
 
-(defvar corfu--frame-timer nil
-  "Frame hide timer.")
-
 (defconst corfu--state-vars
   '(corfu--base
     corfu--candidates
@@ -395,9 +392,9 @@ The completion backend can override this with
   "Make child frame from BUFFER and show it at X/Y with WIDTH/HEIGHT.
 
 PARAMS are frame parameters and FRAME is the existing frame."
-  (when corfu--frame-timer
-    (cancel-timer corfu--frame-timer)
-    (setq corfu--frame-timer nil))
+  (when-let (timer (and frame (frame-parameter frame 'corfu--hide-timer)))
+    (cancel-timer timer)
+    (set-frame-parameter frame 'corfu--hide-timer nil))
   (let* ((window-min-height 1)
          (window-min-width 1)
          (x-gtk-resize-child-frames
@@ -508,8 +505,8 @@ A scroll bar is displayed from LO to LO+BAR."
 
 (defun corfu--hide-frame-deferred ()
   "Deferred frame hiding."
-  (setq corfu--frame-timer nil)
   (when (frame-live-p corfu--frame)
+    (set-frame-parameter corfu--frame 'corfu--frame-timer nil)
     (make-frame-invisible corfu--frame)
     (with-current-buffer (window-buffer (frame-root-window corfu--frame))
       (let ((inhibit-modification-hooks t)
@@ -518,8 +515,10 @@ A scroll bar is displayed from LO to LO+BAR."
 
 (defun corfu--popup-hide ()
   "Hide Corfu popup."
-  (when (and (frame-live-p corfu--frame) (not corfu--frame-timer))
-    (setq corfu--frame-timer (run-at-time 0 nil 
#'corfu--hide-frame-deferred))))
+  (when (and (frame-live-p corfu--frame)
+             (not (frame-parameter corfu--frame 'corfu--hide-timer)))
+    (set-frame-parameter corfu--frame 'corfu--hide-timer
+                         (run-at-time 0 nil #'corfu--hide-frame-deferred))))
 
 (defun corfu--popup-support-p ()
   "Return non-nil if child frames are supported."



reply via email to

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