From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Nix Newsgroups: gmane.emacs.devel Subject: Re: Proposal to improve the nomenclature of scrolling directions Date: Thu, 08 Nov 2012 17:33:19 +0000 Message-ID: <874nl0ov8g.fsf@spindle.srvr.nix> References: <87a9uvv6ng.fsf@uwakimon.sk.tsukuba.ac.jp> <87bof9s7cl.fsf@spindle.srvr.nix> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1352396029 9151 80.91.229.3 (8 Nov 2012 17:33:49 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 8 Nov 2012 17:33:49 +0000 (UTC) Cc: "Stephen J. Turnbull" , Emacs development discussions , Daniel Hackney , Eli Barzilay , Dani Moncayo To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Nov 08 18:33:57 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TWVzB-0004nH-4y for ged-emacs-devel@m.gmane.org; Thu, 08 Nov 2012 18:33:49 +0100 Original-Received: from localhost ([::1]:58578 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWVz1-0006mr-HU for ged-emacs-devel@m.gmane.org; Thu, 08 Nov 2012 12:33:39 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:44547) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWVyt-0006mM-Qa for emacs-devel@gnu.org; Thu, 08 Nov 2012 12:33:38 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TWVys-0001K9-D9 for emacs-devel@gnu.org; Thu, 08 Nov 2012 12:33:31 -0500 Original-Received: from icebox.esperi.org.uk ([81.187.191.129]:41845 helo=mail.esperi.org.uk) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWVys-0001Ib-38 for emacs-devel@gnu.org; Thu, 08 Nov 2012 12:33:30 -0500 Original-Received: from spindle.srvr.nix (nix@spindle.srvr.nix [192.168.14.15]) by mail.esperi.org.uk (8.14.5/8.14.5) with ESMTP id qA8HXJcL012627; Thu, 8 Nov 2012 17:33:19 GMT Emacs: The Awakening In-Reply-To: (Stefan Monnier's message of "Wed, 07 Nov 2012 20:49:18 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-DCC-STAT_FI_X86_64_VIRTUAL-Metrics: spindle 1245; Body=6 Fuz1=6 Fuz2=6 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 81.187.191.129 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:154739 Archived-At: On 8 Nov 2012, Stefan Monnier spake thusly: >> (This model is also why I use Eli Barzilay's wonderfully simple >> scroll-in-place implementation, which I really should contribute to >> upstream Emacs one of these years: I had Eli's go-ahead nearly two years > > Hadn't heard about it. I just looked at > https://github.com/elibarzilay/eliemacs/blob/master/include/scroll-in-place.el > and IIUC all it does is to remember the previous positions during > a sequence of scroll commands, and to use them when scrolling back. Yeah. That version's improved a bit over what I'm using -- it's respecting the old scroll-in-place variable now, so Gnus shouldn't need changing at all. Compared to what XEmacs's scroll-in-place has to do (basically a rewrite of the entire scrolling code, in Lisp, and it still doesn't entirely work) it is enormously better. 99% of the work is delegated to the original scrolling code. I'm honestly not sure how anyone can tolerate Emacs's default scrolling behaviour -- I've used something like scroll-in-place for my entire life with Emacs, the default was so hard to handle. I can't imagine that anyone actually *wants* page-up/page-down sequences to leave you in a different place from where you were before, but Emacs users are conservative old sods so it is likely that a lot of users prefer it. So the default should surely not change. > It could also be used to let the user go back to where she was before > scrolling (to simulate those other editors where point is not moved to > stay visible while scrolling, so that non-scrolling commands teleport > you right back to where you were). Ah. That's an interesting variation. Controlled by (setq scroll-in-place 'unmoving) perhaps? (It should probably hide the cursor while it's conceptually offscreen as well, on terminals where that's possible, by flipping cursor-type to nil. Alas this would make it vanish from non-selected windows too, if cursor-in-non-selected-windows is t...) I'll look into adding 'unmoving support and post the result this weekend. I can remove the rebinding hacks and fold it into the core directly, if you prefer, removing the SIP-orig-scroll-up / SIP-orig-scroll-down hack and migrating most of the rest into simple.el or scrolling.el or something like that, so that all that is needed to turn it on is (setq scroll-preserve-screen-position 'in-place). Or I can just leave it as an add-on. (That seems less elegant, but is probably best to start with.) I have a copyright assignment on file, and my employer (Oracle) signed a disclaimer long ago. I'm not sure about Eli. (Cc:ed.) -- NULL && (void)