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
|
||||
;; new temporary buffer.
|
||||
(with-current-buffer (get-buffer-create " *string-pixel-width*")
|
||||
;; `display-line-numbers-mode' is enabled in internal buffers
|
||||
;; that breaks width calculation, so need to disable (bug#59311)
|
||||
;; If `display-line-numbers-mode' is enabled in internal
|
||||
;; buffers, it breaks width calculation, so disable it (bug#59311)
|
||||
(when (bound-and-true-p display-line-numbers-mode)
|
||||
(display-line-numbers-mode -1))
|
||||
(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)))))
|
||||
|
||||
;;;###autoload
|
||||
|
|
Loading…
Add table
Reference in a new issue