[PATCH] emacs: show: make id links respect window

Mark Walters markwalters1009 at gmail.com
Sun Jan 6 08:10:01 PST 2013


On Sun, 06 Jan 2013, Tomi Ollila <tomi.ollila at iki.fi> wrote:
> On Sun, Jan 06 2013, Mark Walters <markwalters1009 at gmail.com> wrote:
>
>> On Sat, 05 Jan 2013, Tomi Ollila <tomi.ollila at iki.fi> wrote:
>>> On Wed, Dec 26 2012, David Bremner <david at tethera.net> wrote:
>>>
>>>> Mark Walters <markwalters1009 at gmail.com> writes:
>>>>
>>>>>> I can imagine that people would want/like the "open in other window" 
>>>>>> effect of the current code, even if the reason is a bug.
>>>>>
>>>>> That's definitely possible. I generally expect a mouse click to select
>>>>> the window I click and this feels counter intuitive. I think that some
>>>>> people might like an option "open this link in a new window" but I would
>>>>> guess that would like that whether they clicked or pressed RET on the
>>>>> button.
>>>>
>>>> I don't care much either way myself, but before we change notmuch-show
>>>> behaviour (effectively) to accomodate notmuch-pick, I'd like a bit more
>>>> feedback from other people.
>>>
>>> I tested the old behaviour -- split frame to 2 windows, one containing
>>> *scratch* and one *notmuch-hello*. Then I searched for 'obsoletes',
>>> chose last message (id:1356936162-2589-1-git-send-email-amdragon at mit.edu)
>>> moved point to *scratch* buffer and clicked the id: link -- and indeed,
>>> the *scratch* window was replaced.
>>>
>>> I didn't look or test Mark's patch as he stated:
>>> "The lisp is not pretty but seems to work." ;)
>>> ... well, not entirely because of that but I trust it opens the message
>>> in window where the clicked link were and keeps point where it used to
>>> be before clicking (in case point was in different window).
>>
>> It doesn't quite do this: point moves to the window that was clicked. It
>> is just as easy to do as Tomi says (patch below but I should resend if
>> people like it so the commit message gets picked up).
>
> It seems to be the default (and iniuitively expected) behaviour that
> point moves to the window that was clicked... so that's ok :)
>
>> Incidentally, I would be interested to know what people expect the
>> following to do: go to notmuch hello and then search. Now display the
>> results in two windows simultaneously (either split the frame into two
>> windows (c-x 2) or use 2 frames (C-x 5 2)) and then press q.
>>
>> What actually happens is that q runs kill buffer so it disappears in
>> both windows: one of which will fall back to notmuch-hello and one of
>> which will fall back to some other window (eg scratch)
>
> I think that is just expected behaviour, there are e.g.. c-x b and c-x 0
> which should be familiar to every emacs users...

My instinct would be that the window I press q in should go to the
previous buffer in that window but the other window should stay where it
was. But if others are happy as it that is obviously fine.


>> Best wishes
>>
>> Mark
>
> Tomi
>
> PS: did you change anything in the patch below ?

Yes: the new version uses (with-selected-window window ...) compared
with (select-window window) (...)

So the old version switches point to the clicked window, the new version
does not. I am happy either way: the click does normally move point, but
other buttons such as invisibility buttons do not move point when
mouse-clicked so....

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..00b9b56 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))))
>> +					     (with-selected-window window
>> +					       (notmuch-show ,(third link)))))
>>  			  '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 at notmuchmail.org
>> http://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list