summaryrefslogtreecommitdiff
path: root/src/xdisp.c
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2010-11-04 15:35:32 -0400
committerChong Yidong <cyd@stupidchicken.com>2010-11-04 15:35:32 -0400
commit2511e8e04fb3adf5e90685f9973665e2710255ed (patch)
treef17ae746cc31452e4e4aed29226553d66f94cb6c /src/xdisp.c
parentfa884f18e117267c0b2d740112fcd46410334913 (diff)
downloademacs-2511e8e04fb3adf5e90685f9973665e2710255ed.tar.gz
Backport 2010-04-10T10:52:30Z!mituharu@math.s.chiba-u.ac.jp from trunk
Diffstat (limited to 'src/xdisp.c')
-rw-r--r--src/xdisp.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 59e38e440e4..a416c8ff435 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -13577,7 +13577,7 @@ redisplay_window (window, just_this_one_p)
= try_window_reusing_current_matrix (w)))
{
IF_DEBUG (debug_method_add (w, "1"));
- if (try_window (window, startp, 1) < 0)
+ if (try_window (window, startp, TRY_WINDOW_CHECK_MARGINS) < 0)
/* -1 means we need to scroll.
0 means we need new matrices, but fonts_changed_p
is set in that case, so we will detect it below. */
@@ -13936,13 +13936,15 @@ redisplay_window (window, just_this_one_p)
Value is 1 if successful. It is zero if fonts were loaded during
redisplay which makes re-adjusting glyph matrices necessary, and -1
if point would appear in the scroll margins.
- (We check that only if CHECK_MARGINS is nonzero. */
+ (We check the former only if TRY_WINDOW_IGNORE_FONTS_CHANGE is
+ unset in FLAGS, and the latter only if TRY_WINDOW_CHECK_MARGINS is
+ set in FLAGS.) */
int
-try_window (window, pos, check_margins)
+try_window (window, pos, flags)
Lisp_Object window;
struct text_pos pos;
- int check_margins;
+ int flags;
{
struct window *w = XWINDOW (window);
struct it it;
@@ -13964,12 +13966,12 @@ try_window (window, pos, check_margins)
{
if (display_line (&it))
last_text_row = it.glyph_row - 1;
- if (fonts_changed_p)
+ if (fonts_changed_p && !(flags & TRY_WINDOW_IGNORE_FONTS_CHANGE))
return 0;
}
/* Don't let the cursor end in the scroll margins. */
- if (check_margins
+ if ((flags & TRY_WINDOW_CHECK_MARGINS)
&& !MINI_WINDOW_P (w))
{
int this_scroll_margin;