emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs/lisp tool-bar.el


From: Chong Yidong
Subject: [Emacs-diffs] emacs/lisp tool-bar.el
Date: Thu, 27 Nov 2008 03:29:37 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      08/11/27 03:29:37

Modified files:
        lisp           : tool-bar.el 

Log message:
        (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.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/tool-bar.el?cvsroot=emacs&r1=1.21&r2=1.22

Patches:
Index: tool-bar.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/tool-bar.el,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- tool-bar.el 12 Oct 2008 13:45:46 -0000      1.21
+++ tool-bar.el 27 Nov 2008 03:29:37 -0000      1.22
@@ -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)




reply via email to

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