]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch.el
emacs: interesting-buffer bugfixes/updates
[notmuch] / emacs / notmuch.el
index ecf7198003e2af6c8fd1025414971ad414b24544..68a4c0b16fcb1869264db76cbf120caf805e9ea8 100644 (file)
@@ -313,7 +313,7 @@ there will be called at other points of notmuch execution."
 
 (defface notmuch-search-flagged-face
   '((t
 
 (defface notmuch-search-flagged-face
   '((t
-     (:weight bold)))
+     (:foreground "blue")))
   "Face used in search mode face for flagged threads.
 
 This face is the default value for the \"flagged\" tag in
   "Face used in search mode face for flagged threads.
 
 This face is the default value for the \"flagged\" tag in
@@ -323,7 +323,7 @@ This face is the default value for the \"flagged\" tag in
 
 (defface notmuch-search-unread-face
   '((t
 
 (defface notmuch-search-unread-face
   '((t
-     (:foreground "blue")))
+     (:weight bold)))
   "Face used in search mode for unread threads.
 
 This face is the default value for the \"unread\" tag in
   "Face used in search mode for unread threads.
 
 This face is the default value for the \"unread\" tag in
@@ -669,9 +669,16 @@ of the result."
                  (goto-char (point-min))
                  (forward-line (1- notmuch-search-target-line)))))))))
 
                  (goto-char (point-min))
                  (forward-line (1- notmuch-search-target-line)))))))))
 
+(define-widget 'notmuch--custom-face-edit 'lazy
+  "Custom face edit with a tag Edit Face"
+  ;; I could not persuage custom-face-edit to respect the :tag
+  ;; property so create a widget specially
+  :tag "Manually specify face"
+  :type 'custom-face-edit)
+
 (defcustom notmuch-search-line-faces
 (defcustom notmuch-search-line-faces
-  '(("unread" 'notmuch-search-unread-face)
-    ("flagged" 'notmuch-search-flagged-face))
+  '(("unread" notmuch-search-unread-face)
+    ("flagged" notmuch-search-flagged-face))
   "Alist of tags to faces for line highlighting in notmuch-search.
 Each element looks like (TAG . FACE).
 A thread with TAG will have FACE applied.
   "Alist of tags to faces for line highlighting in notmuch-search.
 Each element looks like (TAG . FACE).
 A thread with TAG will have FACE applied.
@@ -689,19 +696,20 @@ matching tags are merged, with earlier attributes overriding
 later. A message having both \"deleted\" and \"unread\" tags with
 the above settings would have a green foreground and blue
 background."
 later. A message having both \"deleted\" and \"unread\" tags with
 the above settings would have a green foreground and blue
 background."
-  :type '(alist :key-type (string) :value-type (custom-face-edit))
+  :type '(alist :key-type (string)
+               :value-type (radio (face :tag "Face name")
+                                   (notmuch--custom-face-edit)))
   :group 'notmuch-search
   :group 'notmuch-faces)
 
 (defun notmuch-search-color-line (start end line-tag-list)
   "Colorize lines in `notmuch-show' based on tags."
   :group 'notmuch-search
   :group 'notmuch-faces)
 
 (defun notmuch-search-color-line (start end line-tag-list)
   "Colorize lines in `notmuch-show' based on tags."
-  (mapc (lambda (elem)
-         (let ((tag (car elem))
-               (attributes (cdr elem)))
-           (when (member tag line-tag-list)
-             (notmuch-apply-face nil attributes nil start end))))
-       ;; Reverse the list so earlier entries take precedence
-       (reverse notmuch-search-line-faces)))
+  ;; Reverse the list so earlier entries take precedence
+  (dolist (elem (reverse notmuch-search-line-faces))
+    (let ((tag (car elem))
+         (face (cdr elem)))
+      (when (member tag line-tag-list)
+       (notmuch-apply-face nil face nil start end)))))
 
 (defun notmuch-search-author-propertize (authors)
   "Split `authors' into matching and non-matching authors and
 
 (defun notmuch-search-author-propertize (authors)
   "Split `authors' into matching and non-matching authors and
@@ -1050,8 +1058,9 @@ current search results AND that are tagged with the given tag."
   (with-current-buffer b
     (memq major-mode '(notmuch-show-mode
                       notmuch-search-mode
   (with-current-buffer b
     (memq major-mode '(notmuch-show-mode
                       notmuch-search-mode
+                      notmuch-tree-mode
                       notmuch-hello-mode
                       notmuch-hello-mode
-                      message-mode))))
+                      notmuch-message-mode))))
 
 ;;;###autoload
 (defun notmuch-cycle-notmuch-buffers ()
 
 ;;;###autoload
 (defun notmuch-cycle-notmuch-buffers ()