summaryrefslogtreecommitdiff
path: root/src/drawscreen.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-08-29 15:06:50 +0100
committerBram Moolenaar <Bram@vim.org>2022-08-29 15:06:50 +0100
commit13608d851a0470ced30921428b3313c023d395d8 (patch)
tree2e15e6c6a263703e8e293df3e852f6dbc9c092f0 /src/drawscreen.c
parentb13d3405fffae1115acc1433479b616f30e292e5 (diff)
downloadvim-git-13608d851a0470ced30921428b3313c023d395d8.tar.gz
patch 9.0.0318: clearing screen causes flickerv9.0.0318
Problem: Clearing screen causes flicker. Solution: Do not clear but redraw in more cases. Add () to "wait_return".
Diffstat (limited to 'src/drawscreen.c')
-rw-r--r--src/drawscreen.c33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/drawscreen.c b/src/drawscreen.c
index a0801e586..e90da5f94 100644
--- a/src/drawscreen.c
+++ b/src/drawscreen.c
@@ -1930,24 +1930,9 @@ win_update(win_T *wp)
}
}
- // When starting redraw in the first line, redraw all lines. When
- // there is only one window it's probably faster to clear the screen
- // first.
+ // When starting redraw in the first line, redraw all lines.
if (mid_start == 0)
- {
mid_end = wp->w_height;
- if (ONE_WINDOW && !WIN_IS_POPUP(wp))
- {
- // Clear the screen when it was not done by win_del_lines() or
- // win_ins_lines() above, "screen_cleared" is FALSE or MAYBE
- // then.
- if (screen_cleared != TRUE)
- screenclear();
- // The screen was cleared, redraw the tab pages line.
- if (redraw_tabline)
- draw_tabline();
- }
- }
// When win_del_lines() or win_ins_lines() caused the screen to be
// cleared (only happens for the first window) or when screenclear()
@@ -3183,7 +3168,7 @@ redraw_later_clear(void)
}
/*
- * Mark all windows to be redrawn later.
+ * Mark all windows to be redrawn later. Except popup windows.
*/
void
redraw_all_later(int type)
@@ -3196,6 +3181,20 @@ redraw_all_later(int type)
set_must_redraw(type);
}
+#if 0 // not actually used yet, it probably should
+/*
+ * Mark all windows, including popup windows, to be redrawn.
+ */
+ void
+redraw_all_windows_later(int type)
+{
+ redraw_all_later(type);
+#ifdef FEAT_PROP_POPUP
+ popup_redraw_all(); // redraw all popup windows
+#endif
+}
+#endif
+
/*
* Set "must_redraw" to "type" unless it already has a higher value
* or it is currently not allowed.