branch: externals/org
commit 312f39a05d083fb23e55ad306bc9ebad345b9508
Author: Ihor Radchenko <[email protected]>
Commit: Ihor Radchenko <[email protected]>
org-string-width: Do not remove face info when PIXELS is non-nil
* lisp/org-macs.el (org-string-width): Do not remove the STRING faces
unless character width is requested. Faces might alter pixel width of
the string and removing them would yield incorrect results.
---
lisp/org-macs.el | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/lisp/org-macs.el b/lisp/org-macs.el
index 9e24e315a5..fa3d210e63 100644
--- a/lisp/org-macs.el
+++ b/lisp/org-macs.el
@@ -968,12 +968,15 @@ Return width in pixels when PIXELS is non-nil."
(org--string-width-1 string)
;; Wrap/line prefix will make `window-text-pizel-size' return too
;; large value including the prefix.
- ;; Face should be removed to make sure that all the string symbols
- ;; are using default face with constant width. Constant char width
- ;; is critical to get right string width from pixel width.
(remove-text-properties 0 (length string)
- '(wrap-prefix t line-prefix t face t)
+ '(wrap-prefix t line-prefix t)
string)
+ ;; Face should be removed to make sure that all the string symbols
+ ;; are using default face with constant width. Constant char width
+ ;; is critical to get right string width from pixel width (not needed
+ ;; when PIXELS are requested though).
+ (unless pixels
+ (remove-text-properties 0 (length string) '(face t) string))
(let (;; We need to remove the folds to make sure that folded table
;; alignment is not messed up.
(current-invisibility-spec