Fix line number display under 'mode-line-format-right-align'
authorEli Zaretskii <eliz@gnu.org>
Tue, 18 Jul 2023 18:06:30 +0000 (21:06 +0300)
committerEli Zaretskii <eliz@gnu.org>
Tue, 18 Jul 2023 18:06:30 +0000 (21:06 +0300)
* src/xdisp.c (Fbuffer_text_pixel_size): Restore window attributes
important for redisplay of the target WINDOW.  (Bug#64713)

src/xdisp.c

index 5d94dc003f383da38b2da47d21a7d501396d5bf7..3728228c6dea6f54f2bc02768946a31b72fa5910 100644 (file)
@@ -11651,6 +11651,8 @@ WINDOW.  */)
 
   set_buffer_internal_1 (b);
 
+  ptrdiff_t base_line_pos = w->base_line_pos;
+  int end_valid = w->window_end_valid;
   if (!EQ (buffer, w->contents))
     {
       wset_buffer (w, buffer);
@@ -11663,6 +11665,11 @@ WINDOW.  */)
 
   unbind_to (count, Qnil);
 
+  /* Restore original values.  This is important if this function is
+     called from some ':eval' form in the middle of redisplay.  */
+  w->base_line_pos = base_line_pos;
+  w->window_end_valid = end_valid;
+
   return value;
 }