From 39e089cc057f141ed440635493a041dc321eb2c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Sat, 28 May 2016 13:13:55 +0100 Subject: vis: try to reduce number of redraws This is a not yet successful attempt to reduce terminal flickering when resizing windows as is for example the case when entering command mode. UI related debug output can be enabled with: $ make CFLAGS=-DDEBUG_UI=1 $ ./vis > log --- view.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'view.c') diff --git a/view.c b/view.c index 4b06d3a..33e73cd 100644 --- a/view.c +++ b/view.c @@ -513,6 +513,8 @@ bool view_resize(View *view, int width, int height) { width = 1; if (height <= 0) height = 1; + if (view->width == width && view->height == height) + return true; size_t lines_size = height*(sizeof(Line) + width*sizeof(Cell)); if (lines_size > view->lines_size) { Line *lines = realloc(view->lines, lines_size); @@ -525,6 +527,8 @@ bool view_resize(View *view, int width, int height) { view->height = height; memset(view->lines, 0, view->lines_size); view_draw(view); + if (view->ui) + view_update(view); return true; } -- cgit v1.2.3