Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id BAB72431FB6 for ; Sun, 13 Jan 2013 05:41:37 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HF9FXAhJtQAY for ; Sun, 13 Jan 2013 05:41:36 -0800 (PST) Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34]) by olra.theworths.org (Postfix) with ESMTP id 61AB3431FAF for ; Sun, 13 Jan 2013 05:41:36 -0800 (PST) Received: from guru.guru-group.fi (localhost [IPv6:::1]) by guru.guru-group.fi (Postfix) with ESMTP id BAD81100045; Sun, 13 Jan 2013 15:41:25 +0200 (EET) From: Tomi Ollila To: Mark Walters , notmuch@notmuchmail.org Subject: Re: [PATCH v3] emacs: show: possible w3m/invisibility workaround In-Reply-To: <1358081032-3066-1-git-send-email-markwalters1009@gmail.com> References: <1357862220-1219-1-git-send-email-markwalters1009@gmail.com> <1358081032-3066-1-git-send-email-markwalters1009@gmail.com> User-Agent: Notmuch/0.14+259~g287394f (http://notmuchmail.org) Emacs/24.2.1 (x86_64-unknown-linux-gnu) X-Face: HhBM'cA~ MIME-Version: 1.0 Content-Type: text/plain X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jan 2013 13:41:38 -0000 On Sun, Jan 13 2013, Mark Walters wrote: > There is a bug in the current notmuch code with w3m and invisible > parts. w3m sets a keymap, and if we have a hidden [text/html] point > at the start of the following line still gets this w3m keymap which > causes some strange effects. For example, RET gives an error "No URL > at Point" rather than hiding the message, goes to the next link > rather than just down a line. > > These keybinding are also inconvenient when the text/html part is > displayed so we ask w3m not to install a keymap. > > This is only likely to be a problem for emacs 23 as shr is preferred > as html renderer on emacs 24 (although the user can set the renderer > to w3m even on emacs 24). > > This solution was suggested by Tomi Ollila > --- LGTM. > On irc Tomi found the correct way of stopping w3m setting a keymap: > there is a variable mm-inline-text-html-with-w3m-keymap which can be > set to nil to tell w3m not to set a keymap. I was lucky when looking through the list provided by M-x customize-group mime-display to figure out whether the whole group could be referenced from notmuch-show customization group -- and happened to notice the customization variable in question. I have previously discussed "against" picking up individiual external customization variables to notmuch groups (just due that I could not find it done before). In case of notmuch-send, there is line (custom-add-to-group 'notmuch-send 'message 'custom-group) in notmuch-lib.el -- as message sending uses message mode (and there are plenty of useful customization there it makes sense to reference the whole group. In case of mm-display functionality that doesn't seem to be the case... Tomi > I think this is the best solution to this bug for 0.15. My view is > that this is correct anyway: w3m does render quickly and nicely (and > will probably be my default renderer from now on) and with this patch > the keybinding problems are the normal notmuch bindings. > > Jani pointed out that in the new invisibility setup all text/html > parts are rendered (invisibly) when notmuch-show runs. We may want to > allow the user to supress this: in fact they can by setting > mm-text-html-renderer to nil but we may want to allow the suppression > without affecting gnus etc, or we may want to link this option into > the notmuch-show customization, or maybe just mention in NEWS. > > Any such fix is a obviously a separate patch. > > Best wishes > > Mark > > > > emacs/notmuch-show.el | 10 ++++++++++ > 1 files changed, 10 insertions(+), 0 deletions(-) > > diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el > index 5751d98..1864dd1 100644 > --- a/emacs/notmuch-show.el > +++ b/emacs/notmuch-show.el > @@ -818,6 +818,16 @@ message at DEPTH in the current thread." > (defun notmuch-show-insert-part-inline-patch-fake-part (msg part content-type nth depth declared-type) > (notmuch-show-insert-part-*/* msg part "text/x-diff" nth depth "inline patch")) > > +(defun notmuch-show-insert-part-text/html (msg part content-type nth depth declared-type) > + ;; text/html handler to work around bugs in renderers and our > + ;; invisibile parts code. In particular w3m sets up a keymap which > + ;; "leaks" outside the invisible region and causes strange effects > + ;; in notmuch. We set mm-inline-text-html-with-w3m-keymap to nil to > + ;; tell w3m not to set a keymap (so the normal notmuch-show-mode-map > + ;; remains). > + (let ((mm-inline-text-html-with-w3m-keymap nil)) > + (notmuch-show-insert-part-*/* msg part content-type nth depth declared-type))) > + > (defun notmuch-show-insert-part-*/* (msg part content-type nth depth declared-type) > ;; This handler _must_ succeed - it is the handler of last resort. > (notmuch-show-insert-part-header nth content-type declared-type (plist-get part :filename)) > -- > 1.7.9.1 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch