emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Redisplay slower in Emacs 28 than Emacs 27


From: Lars Ingebrigtsen
Subject: Re: Redisplay slower in Emacs 28 than Emacs 27
Date: Mon, 07 Dec 2020 22:59:24 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

And this is the culprit -- i.e., this is what's busting the cache, as
far as I can tell:

(defun tool-bar--image-expression (icon)
  "Return an expression that evaluates to an image spec for ICON."
  (let* ((fg (face-attribute 'tool-bar :foreground))
         (bg (face-attribute 'tool-bar :background))
         (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg))
                        (if (eq bg 'unspecified) nil (list :background bg))))
         (xpm-spec (list :type 'xpm :file (concat icon ".xpm")))
         (xpm-lo-spec (list :type 'xpm :file
                            (concat "low-color/" icon ".xpm")))
         (pbm-spec (append (list :type 'pbm :file
                                 (concat icon ".pbm")) colors))
         (xbm-spec (append (list :type 'xbm :file
                                 (concat icon ".xbm")) colors)))
    `(find-image (cond ((not (display-color-p))
                        ',(list pbm-spec xbm-spec xpm-lo-spec xpm-spec))
                       ((< (display-color-cells) 256)
                        ',(list xpm-lo-spec xpm-spec pbm-spec xbm-spec))
                       (t
                        ',(list xpm-spec pbm-spec xbm-spec))))))

Whenever Emacs is asked to redisplay the toolbar, Emacs will run this
function?  That's what my instrumentation seems to say...

I don't use toolbars normally, so I'm not sure how they're supposed to
work -- but shouldn't this toolbar data be computed only once, instead
of repeatedly?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




reply via email to

[Prev in Thread] Current Thread [Next in Thread]