]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1451: tabpanel rendering artifacts when scrolling v9.1.1451
authorHirohito Higashi <h.east.727@gmail.com>
Tue, 10 Jun 2025 18:42:06 +0000 (20:42 +0200)
committerChristian Brabandt <cb@256bit.org>
Tue, 10 Jun 2025 18:42:06 +0000 (20:42 +0200)
Problem:  tabpanel rendering artifacts when scrolling
Solution: update scrolling logic (Hirohito Higashi)

fixes: #17495
closes: #17496

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/term.c
src/version.c
src/window.c

index 649e483d61e607f3d604c0ecc15eb13122192d64..6f7983bfbf5cec8e152ba65f560799c66e3cdc39 100644 (file)
@@ -4464,7 +4464,7 @@ scroll_region_set(win_T *wp, int off)
 {
     OUT_STR(tgoto((char *)T_CS, W_WINROW(wp) + wp->w_height - 1,
                                                         W_WINROW(wp) + off));
-    if (*T_CSV != NUL && wp->w_width != topframe->fr_width)
+    if (*T_CSV != NUL && wp->w_width != Columns)
        OUT_STR(tgoto((char *)T_CSV, wp->w_wincol + wp->w_width - 1,
                                                               wp->w_wincol));
     screen_start();                // don't know where cursor is now
@@ -4478,9 +4478,7 @@ scroll_region_reset(void)
 {
     OUT_STR(tgoto((char *)T_CS, (int)Rows - 1, 0));
     if (*T_CSV != NUL)
-       OUT_STR(tgoto((char *)T_CSV,
-                   firstwin->w_wincol + topframe->fr_width - 1,
-                   firstwin->w_wincol));
+       OUT_STR(tgoto((char *)T_CSV, (int)Columns - 1, 0));
     screen_start();                // don't know where cursor is now
 }
 
index 80b5f030a37e0d1991e37b39663c21b89333ae29..da96e54a03005dd2b35dbb70f0501ee524d27520 100644 (file)
@@ -709,6 +709,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1451,
 /**/
     1450,
 /**/
index bb116382a716568d9b85a77d68f8bae2911951ec..f3b23e85a378d5152d077a1f4cbf1415edfdb26b 100644 (file)
@@ -6226,14 +6226,7 @@ shell_new_columns(void)
 
     if (!skip_win_fix_scroll)
        win_fix_scroll(TRUE);
-#ifdef FEAT_GUI
-    if (gui.in_use && !gui.starting)
-    {
-       if (scroll_region)
-           scroll_region_reset();
-       scroll_start(); // may scroll the screen to the right position
-    }
-#endif
+
     redraw_tabline = TRUE;
 #if defined(FEAT_TABPANEL)
     redraw_tabpanel = TRUE;