From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: "... the window start at a meaningless point within a line." Date: Thu, 01 Oct 2015 11:48:40 +0300 Message-ID: <83mvw39dp3.fsf@gnu.org> References: <20150930204513.GA3174@acm.fritz.box> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1443710110 16215 80.91.229.3 (1 Oct 2015 14:35:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 1 Oct 2015 14:35:10 +0000 (UTC) Cc: emacs-devel@gnu.org To: Alan Mackenzie Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 01 16:35:01 2015 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 1Zhewm-0000IQ-8z for ged-emacs-devel@m.gmane.org; Thu, 01 Oct 2015 16:35:00 +0200 Original-Received: from localhost ([::1]:50984 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zhewl-00072w-I1 for ged-emacs-devel@m.gmane.org; Thu, 01 Oct 2015 10:34:59 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55802) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhZZ3-0000O4-AM for emacs-devel@gnu.org; Thu, 01 Oct 2015 04:50:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZhZYz-0006DN-9x for emacs-devel@gnu.org; Thu, 01 Oct 2015 04:50:09 -0400 Original-Received: from mtaout20.012.net.il ([80.179.55.166]:48906) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhZYz-000699-34 for emacs-devel@gnu.org; Thu, 01 Oct 2015 04:50:05 -0400 Original-Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NVJ000009OZ8L00@a-mtaout20.012.net.il> for emacs-devel@gnu.org; Thu, 01 Oct 2015 11:48:50 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([84.94.185.246]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NVJ00NQW9TD3180@a-mtaout20.012.net.il>; Thu, 01 Oct 2015 11:48:50 +0300 (IDT) In-reply-to: <20150930204513.GA3174@acm.fritz.box> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 80.179.55.166 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:190547 Archived-At: > Date: Wed, 30 Sep 2015 20:45:13 +0000 > From: Alan Mackenzie > > In the Elisp manual, page "Window Start and End", it's described how, if > in (set-window-start x) x is a position not at the start of a line, the > display engine will, instead of x, choose some value near x as the > window start. Is this really necessary? The reason for this is that we want the physical beginning of the line (i.e. the character after a newline or at bob) always be aligned at the left edge of the window's text area, even if it is currently out of view. This prevents annoying horizontal scrolling of long lines when the beginning of the line comes into view. > The particular problem I'm looking at is with Follow Mode, where a pair > of adjacent windows are of unequal width. This is a very common > scenario - I frequently use Follow Mode with three side by side windows > of widths 79, 79, and 80 (as measured by window-body-width). > > The problem occurs when there's a long line at the bottom of window 2 > and its continuation line at the top of window 3. The display manager > chops off the line in W2 after 78 characters, and inserts a \ sign. It > then starts the continuation line in W3 at character 80 (counting from > 1), assuming as it does, that the previous line in this window would be > 79 characters long. So character 79 appears neither on the first > portion of the line in W2, nor in its continuation in W3. This is > suboptimal. > > This problem would not occur if there were a flag to set-window-start > meaning "this value really is where I want the window to start, not some > beginning of line nearby". > > How difficult would it be to relax the constraint on window start > positions and implement this flag? It's not difficult, at least in principle: the recalculation of the window-start point is done in a single function. Not sure if it will have adverse effects, though. You will surely have that horizontal scrolling, but I don't know what other effects will be caused. But let me turn the table and ask you: how difficult would it be to make sure follow-mode never lets a window end in the middle of a continued line?