On Wed, 19 Dec 2012, Mark Walters <markwalters1009@gmail.com> wrote: > There is a bug in current notmuch: if you have multiple windows in one > frame and click an id button link in a show buffer that does not > contain point then the link is opened in the window containing point. > > This reads the mouse event to make sure that the correct window is > used for the link. Personally I prefer that point move to the clicked window, as this patch does. The fact that it's even possible for point not to move to the clicked window I find strange. > --- > > I think this is a bug but that could be debated. It is particularly > easy to trigger with notmuch pick because that uses the split pane > while focus usually remains in the `pick' pane rather than the `show' > pane. > > The lisp is not pretty but seems to work. > > Best wishes > > Mark > > > > > emacs/notmuch-show.el | 5 +++++ > 1 files changed, 5 insertions(+), 0 deletions(-) > > diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el > index 5751d98..5664ea3 100644 > --- a/emacs/notmuch-show.el > +++ b/emacs/notmuch-show.el > @@ -1077,6 +1077,11 @@ buttons for a corresponding notmuch search." > (make-text-button (first link) (second link) > 'action `(lambda (arg) > (notmuch-show ,(third link))) > + 'mouse-action `(lambda (arg) > + (let* ((event last-input-event) > + (window (car (cadr event)))) Better would be (posn-window (event-start event)). If you use the accessors, I don't think the let bindings are really necessary since the code becomes self-documenting. > + (select-window window) > + (notmuch-show ,(third link)))) Would it be better to (button-activate arg) so you don't have to duplicate the action code? (Then you also wouldn't need the quasiquoting and unquoting.) > 'follow-link t > 'help-echo "Mouse-1, RET: search for this message" > 'face goto-address-mail-face))))) > -- > 1.7.9.1 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch