Fix 'string-pixel-width' under 'line-prefix'
* lisp/emacs-lisp/subr-x.el (string-pixel-width): Disable 'line-prefix' and 'wrap-prefix' to avoid their effect on the calculated string width. (Bug#64971)
This commit is contained in:
parent
7bbd7cae07
commit
0c29f53ab8
1 changed files with 6 additions and 3 deletions
|
@ -322,12 +322,15 @@ as the new values of the bound variables in the recursive invocation."
|
||||||
;; Keeping a work buffer around is more efficient than creating a
|
;; Keeping a work buffer around is more efficient than creating a
|
||||||
;; new temporary buffer.
|
;; new temporary buffer.
|
||||||
(with-current-buffer (get-buffer-create " *string-pixel-width*")
|
(with-current-buffer (get-buffer-create " *string-pixel-width*")
|
||||||
;; `display-line-numbers-mode' is enabled in internal buffers
|
;; If `display-line-numbers-mode' is enabled in internal
|
||||||
;; that breaks width calculation, so need to disable (bug#59311)
|
;; buffers, it breaks width calculation, so disable it (bug#59311)
|
||||||
(when (bound-and-true-p display-line-numbers-mode)
|
(when (bound-and-true-p display-line-numbers-mode)
|
||||||
(display-line-numbers-mode -1))
|
(display-line-numbers-mode -1))
|
||||||
(delete-region (point-min) (point-max))
|
(delete-region (point-min) (point-max))
|
||||||
(insert string)
|
;; Disable line-prefix and wrap-prefix, for the same reason.
|
||||||
|
(setq line-prefix nil
|
||||||
|
wrap-prefix nil)
|
||||||
|
(insert (propertize string 'line-prefix nil 'wrap-prefix nil))
|
||||||
(car (buffer-text-pixel-size nil nil t)))))
|
(car (buffer-text-pixel-size nil nil t)))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
|
|
Loading…
Add table
Reference in a new issue