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:
parent
63d4a86f8d
commit
470d269ec1
1 changed files with 27 additions and 17 deletions
|
@ -707,23 +707,33 @@ We prefer the earliest unique letter."
|
|||
"Increase the size of the character under point.
|
||||
FACTOR is the multiplication factor for the size."
|
||||
(interactive)
|
||||
(set-transient-map emoji-zoom-map t nil "Zoom with %k")
|
||||
(let* ((factor (or factor 1.1))
|
||||
(old (get-text-property (point) 'face))
|
||||
(height (or (and (consp old)
|
||||
(plist-get old :height))
|
||||
1.0))
|
||||
(inhibit-read-only t))
|
||||
(with-silent-modifications
|
||||
(if (consp old)
|
||||
(add-text-properties
|
||||
(point) (1+ (point))
|
||||
(list 'face (plist-put (copy-sequence old) :height (* height factor))
|
||||
'rear-nonsticky t))
|
||||
(add-face-text-property (point) (1+ (point))
|
||||
(list :height (* height factor)))
|
||||
(put-text-property (point) (1+ (point))
|
||||
'rear-nonsticky t)))))
|
||||
(set-transient-map emoji-zoom-map t #'redisplay "Zoom with %k")
|
||||
(unless (eobp)
|
||||
(let* ((factor (or factor 1.1))
|
||||
(old (get-text-property (point) 'face))
|
||||
;; The text property is either a named face, or a plist
|
||||
;; with :height, or a list starting with such a plist,
|
||||
;; followed by one or more faces.
|
||||
(newheight (* (or (and (consp old)
|
||||
(or (plist-get (car old) :height)
|
||||
(plist-get old :height)))
|
||||
1.0)
|
||||
factor))
|
||||
(inhibit-read-only t))
|
||||
(with-silent-modifications
|
||||
(if (consp old)
|
||||
(add-text-properties
|
||||
(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
|
||||
(defun emoji-zoom-decrease ()
|
||||
|
|
Loading…
Add table
Reference in a new issue