diff lisp/x11/x-menubar.el @ 110:fe104dbd9147 r20-1b7

Import from CVS: tag r20-1b7
author cvs
date Mon, 13 Aug 2007 09:19:45 +0200
parents 360340f9fd5f
children 9f59509498e1
line wrap: on
line diff
--- a/lisp/x11/x-menubar.el	Mon Aug 13 09:18:41 2007 +0200
+++ b/lisp/x11/x-menubar.el	Mon Aug 13 09:19:45 2007 +0200
@@ -1209,9 +1209,8 @@
   "This function will return a list of all faces that have not been
 'customized'."
   (delq nil (mapcar '(lambda (face)
-		       (if (not (or (get face 'saved-face)
-				   (get face 'factory-face)))
-			  face))
+		       (unless (get face 'saved-face)
+			 face))
 		    (face-list))))
 
 (defun save-options-specifier-spec-list (face property)
@@ -1410,9 +1409,18 @@
   (popup-menu
    (cond ((and global-popup-menu mode-popup-menu)
 	  (check-menu-syntax mode-popup-menu)
-	  (let ((title (car mode-popup-menu))
-		(items (cdr mode-popup-menu)))
-	    (append global-popup-menu
+	  (let* ((title (car mode-popup-menu))
+		 (items (cdr mode-popup-menu))
+		 filters)
+	    ;; Strip keywords from local menu for attaching them at the top
+	    (while (not (vectorp (car items)))
+	      (setq items (append filters (list (car items))))
+	      (setq items (cdr items)))
+	    ;; If filters contains a keyword already present in
+	    ;; `global-popup-menu' you will probably lose.
+	    (append (list (car global-popup-menu))
+		    filters
+		    (cdr global-popup-menu)
 		    '("---" "---")
 		    (if popup-menu-titles (list title))
 		    (if popup-menu-titles '("---" "---"))