unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#925: 23.0.60; follow-mode doesn't work in buffers with a header line
@ 2008-09-07 22:26 ` Phil Sung
  2008-09-08 16:08   ` martin rudalics
  2008-10-28 17:55   ` bug#925: marked as done (23.0.60; follow-mode doesn't work in buffers with a header line) Emacs bug Tracking System
  0 siblings, 2 replies; 5+ messages in thread
From: Phil Sung @ 2008-09-07 22:26 UTC (permalink / raw)
  To: emacs-pretest-bug

Steps to reproduce:

0. emacs -Q
1. C-h r [info-emacs-manual]
2. C-x 3 [split-window-horizontally]
3. M-x follow-mode
4. C-n until point moves past bottom of window

Expected results:

   Point moves to top of next window.

Actual results:

   First window scrolls down and then recenters around point.




In GNU Emacs 23.0.60.1 (i486-pc-linux-gnu, GTK+ Version 2.13.7)
 of 2008-08-31 on iridium, modified by Debian
 (emacs-snapshot package, version 1:20080831-1)
configured using `configure  '--build' 'i486-linux-gnu' '--host' 'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/23.0.60/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.0.60/site-lisp:/usr/share/emacs/site-lisp' '--with-x=yes' '--with-x-toolkit=gtk' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed' 'CPPFLAGS=''






^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#925: 23.0.60; follow-mode doesn't work in buffers with a header line
  2008-09-07 22:26 ` bug#925: 23.0.60; follow-mode doesn't work in buffers with a header line Phil Sung
@ 2008-09-08 16:08   ` martin rudalics
  2008-09-10 16:53     ` Phil Sung
  2008-10-28 17:55   ` bug#925: marked as done (23.0.60; follow-mode doesn't work in buffers with a header line) Emacs bug Tracking System
  1 sibling, 1 reply; 5+ messages in thread
From: martin rudalics @ 2008-09-08 16:08 UTC (permalink / raw)
  To: Phil Sung, 925

 > Steps to reproduce:
 >
 > 0. emacs -Q
 > 1. C-h r [info-emacs-manual]
 > 2. C-x 3 [split-window-horizontally]
 > 3. M-x follow-mode
 > 4. C-n until point moves past bottom of window
 >
 > Expected results:
 >
 >    Point moves to top of next window.
 >
 > Actual results:
 >
 >    First window scrolls down and then recenters around point.

Does it help when you set `scroll-conservatively' to 100?

martin







^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#925: 23.0.60; follow-mode doesn't work in buffers with a header line
  2008-09-08 16:08   ` martin rudalics
@ 2008-09-10 16:53     ` Phil Sung
  2008-09-11  8:54       ` martin rudalics
  0 siblings, 1 reply; 5+ messages in thread
From: Phil Sung @ 2008-09-10 16:53 UTC (permalink / raw)
  To: martin rudalics, 925

martin rudalics writes:
 > Does it help when you set `scroll-conservatively' to 100?

No, it doesn't. When I do that, not only does the expected behavior
not happen, point moves back to the center of the first screen. This
didn't happen with the default value of scroll-conservatively.


Here's what I now think is going on:

When there's a header line, follow-mode miscomputes the beginning of
the second window-- if you try out the "steps to reproduce", you can
see that there's one line after the end of the first window which is
not visible in the second window. When you try to C-n to that line,
follow-mode can't display that line in either window, so something
weird happens.

I tried the (flawed) patch below, which decreases the effective
window-height when there's a header line. I'm not sure if this is the
right approach.

With this patch, point correctly moves from one window to the other,
and the two windows display consecutive lines, as expected. However,
sometimes when moving point between windows, the text will shift up or
down by a line. I don't know why that happens.

Thanks,
Phil


    follow.el (follow-scroll-down, follow-calc-win-end,
    follow-estimate-first-window-start): reduce effective window
    height when header line is present.

diff --git a/lisp/follow.el b/lisp/follow.el
index 508d0f5..766dfce 100644
--- a/lisp/follow.el
+++ b/lisp/follow.el
@@ -624,7 +624,7 @@ Works like `scroll-up' when not in Follow mode."
 	     (select-window win)
 	     (goto-char start)
 	     (vertical-motion (- (- (window-height win)
-				    1
+				    (if header-line-format 2 1)
 				    next-screen-context-lines)))
 	     (set-window-start win (point))
 	     (goto-char start)
@@ -887,7 +887,8 @@ Returns (end-pos end-of-buffer-p)"
       (prog1
 	  (save-excursion
 	    (goto-char (window-start))
-	    (setq height (- (window-height) 1))
+	    (setq height (- (window-height)
+			    (if header-line-format 2 1)))
 	    (setq buffer-end-p
 		  (if (bolp)
 		      (not (= height (vertical-motion height)))
@@ -1219,7 +1220,9 @@ position of the first window.  Otherwise it is a good guess."
       ;(setq exact (bolp))
       (vertical-motion 0 win)
       (while pred
-	(vertical-motion (- 1 (window-height (car pred))) (car pred))
+	(vertical-motion (- (if header-line-format 2 1)
+			    (window-height (car pred)))
+			 (car pred))
 	(if (not (bolp))
 	  (setq exact nil))
 	(setq pred (cdr pred)))






^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#925: 23.0.60; follow-mode doesn't work in buffers with a header line
  2008-09-10 16:53     ` Phil Sung
@ 2008-09-11  8:54       ` martin rudalics
  0 siblings, 0 replies; 5+ messages in thread
From: martin rudalics @ 2008-09-11  8:54 UTC (permalink / raw)
  To: Phil Sung; +Cc: 925

 > No, it doesn't. When I do that, not only does the expected behavior
 > not happen, point moves back to the center of the first screen. This
 > didn't happen with the default value of scroll-conservatively.

I don't understand well.  When I set `scroll-conservatively' to 100
there's no recentering with emacs -Q and both windows scroll.  There's,
however, at least one line missing as you remark below.

 > Here's what I now think is going on:
 >
 > When there's a header line, follow-mode miscomputes the beginning of
 > the second window-- if you try out the "steps to reproduce", you can
 > see that there's one line after the end of the first window which is
 > not visible in the second window. When you try to C-n to that line,
 > follow-mode can't display that line in either window, so something
 > weird happens.
 >
 > I tried the (flawed) patch below, which decreases the effective
 > window-height when there's a header line. I'm not sure if this is the
 > right approach.

Ideally, the second window wouldn't display the header line at all.

 > With this patch, point correctly moves from one window to the other,
 > and the two windows display consecutive lines, as expected. However,
 > sometimes when moving point between windows, the text will shift up or
 > down by a line. I don't know why that happens.

This seems to already happen without your patch.

martin







^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#925: marked as done (23.0.60; follow-mode doesn't work in  buffers with a header line)
  2008-09-07 22:26 ` bug#925: 23.0.60; follow-mode doesn't work in buffers with a header line Phil Sung
  2008-09-08 16:08   ` martin rudalics
@ 2008-10-28 17:55   ` Emacs bug Tracking System
  1 sibling, 0 replies; 5+ messages in thread
From: Emacs bug Tracking System @ 2008-10-28 17:55 UTC (permalink / raw)
  To: martin rudalics

[-- Attachment #1: Type: text/plain, Size: 891 bytes --]


Your message dated Tue, 28 Oct 2008 18:43:40 +0100
with message-id <49074F4C.6080008@gmx.at>
and subject line Re: bug#925: 23.0.60;	follow-mode doesn't work in buffers with a header line
has caused the Emacs bug report #925,
regarding 23.0.60; follow-mode doesn't work in buffers with a header line
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact don@donarmstrong.com
immediately.)


-- 
925: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=925
Emacs Bug Tracking System
Contact don@donarmstrong.com with problems

[-- Attachment #2: Type: message/rfc822, Size: 4188 bytes --]

From: Phil Sung <psung@mit.edu>
To: emacs-pretest-bug@gnu.org
Subject: 23.0.60; follow-mode doesn't work in buffers with a header line
Date: Sun, 7 Sep 2008 18:26:22 -0400
Message-ID: <18628.21774.308940.632822@gargle.gargle.HOWL>

Steps to reproduce:

0. emacs -Q
1. C-h r [info-emacs-manual]
2. C-x 3 [split-window-horizontally]
3. M-x follow-mode
4. C-n until point moves past bottom of window

Expected results:

   Point moves to top of next window.

Actual results:

   First window scrolls down and then recenters around point.




In GNU Emacs 23.0.60.1 (i486-pc-linux-gnu, GTK+ Version 2.13.7)
 of 2008-08-31 on iridium, modified by Debian
 (emacs-snapshot package, version 1:20080831-1)
configured using `configure  '--build' 'i486-linux-gnu' '--host' 'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/23.0.60/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.0.60/site-lisp:/usr/share/emacs/site-lisp' '--with-x=yes' '--with-x-toolkit=gtk' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed' 'CPPFLAGS=''



[-- Attachment #3: Type: message/rfc822, Size: 1772 bytes --]

From: martin rudalics <rudalics@gmx.at>
To: 925-done@emacsbugs.donarmstrong.com
Cc: Phil Sung <psung@mit.edu>
Subject: Re: bug#925: 23.0.60;	follow-mode doesn't work in buffers with a header line
Date: Tue, 28 Oct 2008 18:43:40 +0100
Message-ID: <49074F4C.6080008@gmx.at>

Fixed as

2008-10-28  Phil Sung  <psung@mit.edu>  (tiny change)

	* follow.el (follow-scroll-down, follow-calc-win-end)
	(follow-estimate-first-window-start): Reduce effective window
	height when header line is present.  (Bug#925)

Thanks, martin



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-10-28 17:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <49074F4C.6080008@gmx.at>
2008-09-07 22:26 ` bug#925: 23.0.60; follow-mode doesn't work in buffers with a header line Phil Sung
2008-09-08 16:08   ` martin rudalics
2008-09-10 16:53     ` Phil Sung
2008-09-11  8:54       ` martin rudalics
2008-10-28 17:55   ` bug#925: marked as done (23.0.60; follow-mode doesn't work in buffers with a header line) Emacs bug Tracking System

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).