Hi This patch adds buttons for every tag in show mode which means that tabbing down to an attachment (or other button) is rather slower. As someone who is not going to use the tag buttons (at least not very often) Is it possible to avoid this? perhaps by making the button optional or making the button only mouse clickable? (Since the buttons in the headerline are not tabbable to then the latter might be reasonable.)
Best wishes Mark On Sun, 18 Nov 2012, Damien Cassou <damien.cas...@gmail.com> wrote: > Signed-off-by: Damien Cassou <damien.cas...@gmail.com> > --- > emacs/notmuch-show.el | 9 +++++---- > emacs/notmuch-tagger.el | 33 +++++++++++++++++++++++++++++++++ > 2 files changed, 38 insertions(+), 4 deletions(-) > > diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el > index 988e27c..379c8cd 100644 > --- a/emacs/notmuch-show.el > +++ b/emacs/notmuch-show.el > @@ -431,10 +431,11 @@ message at DEPTH in the current thread." > (notmuch-show-clean-address (plist-get headers :From)) > " (" > date > - ") (" > - (propertize (mapconcat 'identity tags " ") > - 'face 'notmuch-tag-face) > - ")\n") > + ") " > + (propertize > + (format-mode-line (notmuch-tagger-present-tags tags)) > + 'face 'notmuch-tag-face) > + "\n") > (overlay-put (make-overlay start (point)) 'face > 'notmuch-message-summary-face))) > > (defun notmuch-show-insert-header (header header-value) > diff --git a/emacs/notmuch-tagger.el b/emacs/notmuch-tagger.el > index 19a6c7e..379a905 100644 > --- a/emacs/notmuch-tagger.el > +++ b/emacs/notmuch-tagger.el > @@ -53,12 +53,21 @@ test if the library is present before calling this > function." > (let ((tag (header-button-get button 'notmuch-tagger-tag))) > (notmuch-tagger-goto-target tag))) > > +(defun notmuch-tagger-body-button-action (button) > + "Open `notmuch-search' for the tag referenced by BUTTON." > + (let ((tag (button-get button 'notmuch-tagger-tag))) > + (notmuch-tagger-goto-target tag))) > + > (eval-after-load "header-button" > '(define-button-type 'notmuch-tagger-header-button-type > 'supertype 'header > 'action #'notmuch-tagger-header-button-action > 'follow-link t)) > > +(define-button-type 'notmuch-tagger-body-button-type > + 'action #'notmuch-tagger-body-button-action > + 'follow-link t) > + > (defun notmuch-tagger-really-make-header-link (tag) > "Return a property list that presents a link to TAG. > > @@ -82,6 +91,19 @@ if not." > (notmuch-tagger-really-make-header-link tag) > tag)) > > +(defun notmuch-tagger-make-body-link (tag) > + "Return a property list that presents a link to TAG. > +The returned property list will work everywhere except in the > +header-line. For a link that works on the header-line, prefer > +`notmuch-tagger-make-header-link'." > + (let ((button (copy-sequence tag))) > + (make-text-button > + button nil > + 'type 'notmuch-tagger-body-button-type > + 'notmuch-tagger-tag tag > + 'help-echo (format "%s: Search other messages like this" tag)) > + button)) > + > (defun notmuch-tagger-present-tags-header-line (tags) > "Return a property list to present TAGS in emacs header-line." > (list > @@ -91,6 +113,17 @@ if not." > " ") > ")")) > > +(defun notmuch-tagger-present-tags (tags) > + "Return a property list to present TAGS in emacs. > +If tags the result of this function is to be used within the > +header-line, prefer `notmuch-tagger-present-tags-header-line' > +instead of this function." > + (list > + "(" > + (notmuch-tagger-separate-elems > + (mapcar #'notmuch-tagger-make-body-link tags) > + " ") > + ")")) > > (provide 'notmuch-tagger) > ;;; notmuch-tagger.el ends here > -- > 1.7.10.4 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch