summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Bernoulli <jonas@bernoul.li>2026-04-13 21:19:06 +0200
committerJonas Bernoulli <jonas@bernoul.li>2026-04-13 21:19:06 +0200
commitbd395cd5b7ab7eedd11bcb6c6652749c517fd9d3 (patch)
tree5c5fe60ba6eef1c43887cc67166d55a4431ab834
parent83b31febd4afaf77eff4d72e6897196aa2cc4fa7 (diff)
Use string-pixel-width if defined
-rw-r--r--lisp/transient.el20
1 files changed, 12 insertions, 8 deletions
diff --git a/lisp/transient.el b/lisp/transient.el
index e8e4e75..e6beaf2 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -5201,14 +5201,18 @@ apply the face `transient-unreachable' to the complete string."
(length (oref suffix key))))
(oref group suffixes))))))
-(defun transient--string-pixel-width (string)
- (with-temp-buffer
- (insert string)
- (save-window-excursion
- (set-window-dedicated-p nil nil)
- (set-window-buffer nil (current-buffer))
- (car (window-text-pixel-size
- nil (line-beginning-position) (point))))))
+(static-if (fboundp 'string-pixel-width) ; since Emacs 29.1
+ (defalias 'transient--string-pixel-width #'string-pixel-width)
+ ;; c22b735f0c6 and 61c254cafc9 cannot be backported. Some later
+ ;; commits could be ported, but users should instead update Emacs.
+ (defun transient--string-pixel-width (string)
+ (with-temp-buffer
+ (insert string)
+ (save-window-excursion
+ (set-window-dedicated-p nil nil)
+ (set-window-buffer nil (current-buffer))
+ (car (window-text-pixel-size
+ nil (line-beginning-position) (point)))))))
(defun transient--column-stops (columns)
(let* ((var-pitch (or transient-align-variable-pitch