emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Window configurations


From: martin rudalics
Subject: Re: Window configurations
Date: 2010年6月05日 14:49:03 +0200
User-agent: Thunderbird 2.0.0.21 (Windows/20090302)

> I tried to remove the conditional, but it doesn't help.
> Maybe some other your changes fixed that?
[Indeed. Just that I had the fix in my build but no more in the
source so it took me three hours to find out what really happened.]
It's a longstanding bug in Fselect_window. At the time I changed
`pop-to-buffer' I wasn't aware of it and thus only added to the
confusion.
Please do two things: In Fselect_window move the
 if (NILP (norecord))
 record_buffer (w->buffer);
up into the
 if (NILP (norecord))
 {
 ++window_select_count;
 XSETFASTINT (w->use_time, window_select_count);
 }
clause such that the latter reads as
 if (NILP (norecord))
 {
 ++window_select_count;
 XSETFASTINT (w->use_time, window_select_count);
 record_buffer (w->buffer);
 }
so the buffer gets recorded even if the selected window does not change.
In addition, remove the conditional from `pop-to-buffer' as explained
before. If you don't encounter problems, please check it in.
martin
PS: I'm not sure whether in Fselect_window this
 /* Go to the point recorded in the window.
 This is important when the buffer is in more
 than one window. It also matters when
 redisplay_window has altered point after scrolling,
 because it makes the change only in the window. */
 {
 register int new_point = marker_position (w->pointm);
 if (new_point < BEGV)
 SET_PT (BEGV);
 else if (new_point > ZV)
 SET_PT (ZV);
 else
 SET_PT (new_point);
 }
stuff should be moved in front of the
 if (EQ (window, selected_window))
 return window;
as well. Any ideas?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]

AltStyle によって変換されたページ (->オリジナル) /