1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-23 18:47:57 +00:00

Fix bug #9324 with unwarranted repositioning of point.

src/xdisp.c (redisplay_window): Don't force window start if point
 will be invisible in the resulting window.
This commit is contained in:
Eli Zaretskii 2011-08-26 13:07:06 +03:00
parent f8ccf16762
commit c11821d4e1
3 changed files with 15 additions and 2 deletions

View File

@ -282,7 +282,7 @@ Not documented
;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist
;;;;;; do* do loop return-from return block etypecase typecase ecase
;;;;;; case load-time-value eval-when destructuring-bind function*
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "0907093f7720996444ededb4edfe8072")
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "cc8cbd8c86e2facbe61986e992e6c508")
;;; Generated autoloads from cl-macs.el
(autoload 'gensym "cl-macs" "\

View File

@ -1,3 +1,8 @@
2011-08-26 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (redisplay_window): Don't force window start if point
will be invisible in the resulting window. (Bug#9324)
2011-08-25 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when

View File

@ -15099,6 +15099,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
|| (XFASTINT (w->last_modified) >= MODIFF
&& XFASTINT (w->last_overlay_modified) >= OVERLAY_MODIFF)))
{
int d1, d2, d3, d4, d5, d6;
/* If first window line is a continuation line, and window start
is inside the modified region, but the first change is before
@ -15120,7 +15121,14 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
compute_window_start_on_continuation_line. (See also
bug#197). */
&& XMARKER (w->start)->buffer == current_buffer
&& compute_window_start_on_continuation_line (w))
&& compute_window_start_on_continuation_line (w)
/* It doesn't make sense to force the window start like we
do at label force_start if it is already known that point
will not be visible in the resulting window, because
doing so will move point from its correct position
instead of scrolling the window to bring point into view.
See bug#9324. */
&& pos_visible_p (w, PT, &d1, &d2, &d3, &d4, &d5, &d6))
{
w->force_start = Qt;
SET_TEXT_POS_FROM_MARKER (startp, w->start);