diff options
| -rw-r--r-- | CHANGELOG.org | 5 | ||||
| -rw-r--r-- | corfu.el | 23 | ||||
| -rw-r--r-- | extensions/corfu-popupinfo.el | 8 |
3 files changed, 16 insertions, 20 deletions
diff --git a/CHANGELOG.org b/CHANGELOG.org index 6924b47..f00862f 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -4,8 +4,9 @@ * Development -- corfu-popupinfo: Faster scrolling speed. -- corfu-popupinfo: Fix Emacs 30 deprecation warning. +- ~corfu-border-width~: New customization variable. +- ~corfu-popupinfo~: Faster scrolling speed. +- ~corfu-popupinfo~: Fix Emacs 30 deprecation warning. - Work around Emacs bug#79792, where the ~*Help*~ buffer is replaced unexpectedly. - Experimental: Use new function =set-frame-size-and-position-pixelwise= if available. The patch can be downloaded from here: @@ -140,6 +140,10 @@ separator: Only stay alive if there is no match and "Width of the bar in units of the character width." :type 'float) +(defcustom corfu-border-width 1 + "Width of the border in pixels, only applies to GUI Emacs." + :type 'natnum) + (defcustom corfu-margin-formatters nil "Registry for margin formatter functions. Each function of the list is called with the completion metadata as @@ -333,8 +337,7 @@ settings `corfu-auto-delay', `corfu-auto-prefix' and "Initial Corfu state.") (defvar corfu--frame-parameters - '((internal-border-width . 1) ;; Customize for a thicker GUI border - (no-accept-focus . t) + '((no-accept-focus . t) (no-focus-on-map . t) (min-width . t) (min-height . t) @@ -355,11 +358,7 @@ settings `corfu-auto-delay', `corfu-auto-prefix' and (desktop-dont-save . t) (inhibit-double-buffering . t)) ;; Avoid display artifacts on X/Gtk builds "Default child frame parameters. -Some of the parameters can be customized via `setf' and `alist-get', for -example, use this to make the border on GUI thicker: - (setf (alist-get \\='internal-border-width - corfu--frame-parameters) 3) -It is recommended to leave most of the parameters unchanged.") +It is recommended to avoid changing these parameters.") (defvar corfu--buffer-parameters '((mode-line-format . nil) @@ -504,8 +503,8 @@ FRAME is the existing frame." (width . 0) (height . 0) (visibility . nil) (right-fringe . ,right-fringe-width) (left-fringe . ,left-fringe-width) - (child-frame-border-width - . ,(alist-get 'internal-border-width corfu--frame-parameters)) + (internal-border-width . ,corfu-border-width) + (child-frame-border-width . ,corfu-border-width) ,@corfu--frame-parameters)))) ;; XXX HACK Setting the same frame-parameter/face-background is not a nop. ;; Check before applying the setting. Without the check, the frame flickers @@ -530,8 +529,8 @@ FRAME is the existing frame." (font . ,(frame-parameter parent 'font)) (right-fringe . ,right-fringe-width) (left-fringe . ,left-fringe-width) - (child-frame-border-width - . ,(alist-get 'internal-border-width corfu--frame-parameters)) + (internal-border-width . ,corfu-border-width) + (child-frame-border-width . ,corfu-border-width) ,@corfu--frame-parameters)) (diff (cl-loop for p in should for (k . v) = p unless (equal (alist-get k is) v) collect p))) @@ -1140,7 +1139,7 @@ A scroll bar is displayed from LO to LO+BAR." ;; parent frame (gh:minad/corfu#261). (height (max lh (* (length lines) ch))) (edge (window-inside-pixel-edges)) - (border (if graphic (alist-get 'internal-border-width corfu--frame-parameters) 0)) + (border (if graphic corfu-border-width 0)) (x (max 0 (min (+ (car edge) (- (or (car pos) 0) ml (* cw off) border)) (- (frame-pixel-width) width)))) (yb (+ (cadr edge) (or (cdr pos) 0) lh diff --git a/extensions/corfu-popupinfo.el b/extensions/corfu-popupinfo.el index dcd678e..414d01e 100644 --- a/extensions/corfu-popupinfo.el +++ b/extensions/corfu-popupinfo.el @@ -299,9 +299,7 @@ form (X Y WIDTH HEIGHT DIR)." (pcase-let* ((cw (default-font-width)) (lh (default-line-height)) - (border (if (display-graphic-p corfu--frame) - (alist-get 'internal-border-width corfu--frame-parameters) - 0)) + (border (if (display-graphic-p corfu--frame) corfu-border-width 0)) (`(,_pfx ,_pfy ,pfw ,pfh) (corfu-popupinfo--frame-geometry (frame-parent corfu--frame))) (`(,cfx ,cfy ,cfw ,cfh) (corfu-popupinfo--frame-geometry corfu--frame)) @@ -371,9 +369,7 @@ form (X Y WIDTH HEIGHT DIR)." (corfu-popupinfo--hide) (setq cand-changed nil coords-changed nil))) (when (or cand-changed coords-changed) - (pcase-let* ((border (if (display-graphic-p corfu--frame) - (alist-get 'internal-border-width corfu--frame-parameters) - 0)) + (pcase-let* ((border (if (display-graphic-p corfu--frame) corfu-border-width 0)) (`(,area-x ,area-y ,area-w ,area-h ,area-d) (corfu-popupinfo--area (if cand-changed |
