Make emoji-zoom-{increase,decrease} set text properties correctly

* lisp/international/emoji.el (emoji-zoom-increase): Ensure that we're
increasing the :height of the anonymous face at point, rather than
having two :height properties, which appeared to work by
accident, and don't error at eob.  (Bug#62675)
This commit is contained in:
Robert Pluim 2023-04-05 15:19:13 +02:00
parent 63d4a86f8d
commit 470d269ec1

View file

@ -707,23 +707,33 @@ We prefer the earliest unique letter."
"Increase the size of the character under point. "Increase the size of the character under point.
FACTOR is the multiplication factor for the size." FACTOR is the multiplication factor for the size."
(interactive) (interactive)
(set-transient-map emoji-zoom-map t nil "Zoom with %k") (set-transient-map emoji-zoom-map t #'redisplay "Zoom with %k")
(let* ((factor (or factor 1.1)) (unless (eobp)
(old (get-text-property (point) 'face)) (let* ((factor (or factor 1.1))
(height (or (and (consp old) (old (get-text-property (point) 'face))
(plist-get old :height)) ;; The text property is either a named face, or a plist
1.0)) ;; with :height, or a list starting with such a plist,
(inhibit-read-only t)) ;; followed by one or more faces.
(with-silent-modifications (newheight (* (or (and (consp old)
(if (consp old) (or (plist-get (car old) :height)
(add-text-properties (plist-get old :height)))
(point) (1+ (point)) 1.0)
(list 'face (plist-put (copy-sequence old) :height (* height factor)) factor))
'rear-nonsticky t)) (inhibit-read-only t))
(add-face-text-property (point) (1+ (point)) (with-silent-modifications
(list :height (* height factor))) (if (consp old)
(put-text-property (point) (1+ (point)) (add-text-properties
'rear-nonsticky t))))) (point) (1+ (point))
(list 'face
(if (eq (car old) :height)
(plist-put (copy-sequence old) :height newheight)
(cons (plist-put (car old) :height newheight)
(cdr old)))
'rear-nonsticky t))
(add-face-text-property (point) (1+ (point))
(list :height newheight))
(put-text-property (point) (1+ (point))
'rear-nonsticky t))))))
;;;###autoload ;;;###autoload
(defun emoji-zoom-decrease () (defun emoji-zoom-decrease ()