emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master a749b55: Fix redisplay glitches due to recent chang


From: Eli Zaretskii
Subject: [Emacs-diffs] master a749b55: Fix redisplay glitches due to recent change in redisplay_internal
Date: Sun, 26 Mar 2017 14:38:13 -0400 (EDT)

branch: master
commit a749b55d8ee530797ccff693ad302541257d0415
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix redisplay glitches due to recent change in redisplay_internal
    
    * src/xdisp.c (redisplay_internal): A better fix for bug#26097.
    See http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00695.html
    for the problems caused by the original fix.
---
 src/xdisp.c | 29 +++++++----------------------
 1 file changed, 7 insertions(+), 22 deletions(-)

diff --git a/src/xdisp.c b/src/xdisp.c
index 3255052..af086d1 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -14073,7 +14073,6 @@ redisplay_internal (void)
                /* Only GC scrollbars when we redisplay the whole frame.  */
                = f->redisplay || !REDISPLAY_SOME_P ();
              bool f_redisplay_flag = f->redisplay;
-             bool f_garbaged_flag = FRAME_GARBAGED_P (f);
              /* Mark all the scroll bars to be removed; we'll redeem
                 the ones we want when we redisplay their windows.  */
              if (gcscrollbars && FRAME_TERMINAL (f)->condemn_scroll_bars_hook)
@@ -14134,30 +14133,16 @@ redisplay_internal (void)
                     Therefore, we must redisplay this frame.  */
                  if (!f_redisplay_flag && f->redisplay)
                     goto retry_frame;
-                 /* Likewise with the frame's garbaged flag: it can
-                    get set inside redisplay_windows if some hook
-                    winds up calling adjust_frame_glyphs, for example. */
-                 if (!f_garbaged_flag && FRAME_GARBAGED_P (f))
-                   {
-                     f->garbaged = false;
-                     fset_redisplay (f);
-                     goto retry_frame;
-                   }
-
                   /* In some case (e.g., window resize), we notice
                      only during window updating that the window
                      content changed unpredictably (e.g., a GTK
-                     scrollbar moved) and that our previous estimation
-                     of the frame content was garbage.  We have to
-                     start over.  These cases should be rare, so going
-                     all the way back to the top of redisplay should
-                     be good enough.
-
-                     Why FRAME_WINDOW_P? See
-                     
https://lists.gnu.org/archive/html/emacs-devel/2016-10/msg00957.html
-
-                     */
-                  if (FRAME_GARBAGED_P (f) && FRAME_WINDOW_P (f))
+                     scrollbar moved, or some Lisp hook that winds up
+                     calling adjust_frame_glyphs) and that our
+                     previous estimation of the frame content was
+                     garbage.  We have to start over.  These cases
+                     should be rare, so going all the way back to the
+                     top of redisplay should be good enough.  */
+                  if (FRAME_GARBAGED_P (f))
                     goto retry;
 
                  /* Prevent various kinds of signals during display



reply via email to

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