changeset 99971:1b6dc3613e69

(tool-bar-find-image-cache): Var deleted. (tool-bar-find-image): Function deleted. (tool-bar-local-item, tool-bar-local-item-from-menu): Use find-image instead of tool-bar-find-image. (tool-bar-keymap-cache): New hash table. (tool-bar-make-keymap): Use it. (tool-bar-make-keymap-1): Move body of tool-bar-make-keymap here.
author Chong Yidong <cyd@stupidchicken.com>
date Thu, 27 Nov 2008 03:29:37 +0000
parents 11d986fc0df3
children a13cdd40b8da
files lisp/tool-bar.el
diffstat 1 files changed, 10 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/tool-bar.el	Thu Nov 27 03:27:54 2008 +0000
+++ b/lisp/tool-bar.el	Thu Nov 27 03:29:37 2008 +0000
@@ -92,10 +92,18 @@
 
 (declare-function image-mask-p "image.c" (spec &optional frame))
 
+(defconst tool-bar-keymap-cache (make-hash-table :weakness t :test 'equal))
+
 (defun tool-bar-make-keymap (&optional ignore)
   "Generate an actual keymap from `tool-bar-map'.
 Its main job is to figure out which images to use based on the display's
 color capability and based on the available image libraries."
+  (let ((key (cons (frame-terminal) tool-bar-map)))
+    (or (gethash key tool-bar-keymap-cache)
+	(puthash key (tool-bar-make-keymap-1) tool-bar-keymap-cache))))
+
+(defun tool-bar-make-keymap-1 ()
+  "Generate an actual keymap from `tool-bar-map', without caching."
   (mapcar (lambda (bind)
             (let (image-exp plist)
               (when (and (eq (car-safe (cdr-safe bind)) 'menu-item)
@@ -119,13 +127,6 @@
 	      bind))
 	  tool-bar-map))
 
-(defconst tool-bar-find-image-cache (make-hash-table :weakness t :test 'equal))
-
-(defun tool-bar-find-image (specs)
-  "Like `find-image' but with caching."
-  (or (gethash specs tool-bar-find-image-cache)
-      (puthash specs (find-image specs) tool-bar-find-image-cache)))
-
 ;;;###autoload
 (defun tool-bar-add-item (icon def key &rest props)
   "Add an item to the tool bar.
@@ -166,7 +167,7 @@
                                  (concat icon ".pbm")) colors))
 	 (xbm-spec (append (list :type 'xbm :file
                                  (concat icon ".xbm")) colors))
-	 (image-exp `(tool-bar-find-image
+	 (image-exp `(find-image
 		      (cond ((not (display-color-p))
 			     ',(list pbm-spec xbm-spec xpm-lo-spec xpm-spec))
 			    ((< (display-color-cells) 256)
@@ -218,7 +219,7 @@
                                  (concat icon ".pbm")) colors))
 	 (xbm-spec (append (list :type 'xbm :file
                                  (concat icon ".xbm")) colors))
-	 (image-exp `(tool-bar-find-image
+	 (image-exp `(find-image
 		      (cond ((not (display-color-p))
 			     ',(list pbm-spec xbm-spec xpm-lo-spec xpm-spec))
 			    ((< (display-color-cells) 256)