From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: recenter-top-bottom Date: Sun, 11 Nov 2007 23:47:21 +0200 Organization: JURTA Message-ID: <87ode079i6.fsf@jurta.org> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1194817922 9855 80.91.229.12 (11 Nov 2007 21:52:02 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 11 Nov 2007 21:52:02 +0000 (UTC) Cc: alan.mackenzie_jwa@nxp.com, emacs-devel@gnu.org To: "Drew Adams" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Nov 11 22:52:06 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1IrKis-0002Wm-1i for ged-emacs-devel@m.gmane.org; Sun, 11 Nov 2007 22:52:06 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IrKig-0004Lb-02 for ged-emacs-devel@m.gmane.org; Sun, 11 Nov 2007 16:51:54 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IrKhI-0002Pc-7K for emacs-devel@gnu.org; Sun, 11 Nov 2007 16:50:28 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IrKhH-0002On-J6 for emacs-devel@gnu.org; Sun, 11 Nov 2007 16:50:27 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IrKhH-0002Oj-BZ for emacs-devel@gnu.org; Sun, 11 Nov 2007 16:50:27 -0500 Original-Received: from [62.64.120.201] (helo=relay03.kiev.sovam.com) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1IrKhG-0007kB-SB for emacs-devel@gnu.org; Sun, 11 Nov 2007 16:50:27 -0500 Original-Received: from [83.170.232.243] (helo=smtp.svitonline.com) by relay03.kiev.sovam.com with esmtp (Exim 4.67) (envelope-from ) id 1IrKh0-00010n-Mc; Sun, 11 Nov 2007 23:50:10 +0200 In-Reply-To: (Drew Adams's message of "Sun, 11 Nov 2007 12:16:46 -0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.50 (gnu/linux) X-Scanner-Signature: 88f972a75cd389d721acc69b695bb680 X-DrWeb-checked: yes X-SpamTest-Envelope-From: juri@jurta.org X-SpamTest-Group-ID: 00000000 X-SpamTest-Header: Not Detected X-SpamTest-Info: Profiles 1761 [Nov 09 2007] X-SpamTest-Info: helo_type=3 X-SpamTest-Info: {HEADERS: header Content-Type found without required header Content-Transfer-Encoding} X-SpamTest-Method: none X-SpamTest-Rate: 19 X-SpamTest-Status: Not detected X-SpamTest-Status-Extended: not_detected X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0255], KAS30/Release X-detected-kernel: by monty-python.gnu.org: FreeBSD 4.7-5.2 (or MacOS X 10.2-10.4) (2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:82970 Archived-At: > (cond (arg (recenter arg)) > (t > (let* ((top (1+ (count-lines 1 (window-start)))) > (bottom (1+ (count-lines 1 (window-end)))) > (current (1+ (count-lines 1 (point)))) > (total (window-height))) > (cond ((< (- current top) (/ total 3)) > (recenter (1- (- scroll-conservatively)))) > ((< (- bottom current) (/ total 3)) (recenter)) > (t (recenter scroll-conservatively))))))) I like the new definition of `recenter-top-bottom'. But there is one problem: it doesn't work when point is close to the end of the buffer. It doesn't put point to the upper half of the window but this is possible with other commands (because the end of the buffer is not attached to the end of the window in Emacs). Also I suggest replacing `(recenter)' with `(recenter '(4))' to not redraw the frame when moving point to the center, to not make it different from moving point to other parts of the window that doesn't redraw the frame. -- Juri Linkov http://www.jurta.org/emacs/