To: vim_dev@googlegroups.com Subject: Patch 8.1.0698 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.0698 Problem: Clearing the window is used too often, causing the command line to be cleared when opening a tab. (Miroslav Koškár) Solution: Use NOT_VALID instead of CLEAR. (suggested by Jason Franklin, closes #630) Also do this for a few other places where clearing the screen isn't really needed. Files: src/window.c *** ../vim-8.1.0697/src/window.c 2018-12-22 17:07:45.771347741 +0100 --- src/window.c 2019-01-06 17:06:42.216917047 +0100 *************** *** 1577,1583 **** (void)win_comp_pos(); /* recompute window positions */ win_enter(wp, TRUE); ! redraw_later(CLEAR); } /* --- 1577,1583 ---- (void)win_comp_pos(); /* recompute window positions */ win_enter(wp, TRUE); ! redraw_all_later(NOT_VALID); } /* *************** *** 1660,1666 **** (void)win_comp_pos(); } ! redraw_later(CLEAR); } /* --- 1660,1666 ---- (void)win_comp_pos(); } ! redraw_all_later(NOT_VALID); } /* *************** *** 1817,1823 **** frame_new_height(topfr, height, FALSE, FALSE); topfr->fr_win->w_wincol = col; frame_new_width(topfr, width, FALSE, FALSE); ! redraw_all_later(CLEAR); } } else if (topfr->fr_layout == FR_ROW) --- 1817,1823 ---- frame_new_height(topfr, height, FALSE, FALSE); topfr->fr_win->w_wincol = col; frame_new_width(topfr, width, FALSE, FALSE); ! redraw_all_later(NOT_VALID); } } else if (topfr->fr_layout == FR_ROW) *************** *** 3702,3708 **** entering_window(curwin); #endif ! redraw_all_later(CLEAR); apply_autocmds(EVENT_WINNEW, NULL, NULL, FALSE, curbuf); apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf); apply_autocmds(EVENT_TABNEW, NULL, NULL, FALSE, curbuf); --- 3702,3708 ---- entering_window(curwin); #endif ! redraw_all_later(NOT_VALID); apply_autocmds(EVENT_WINNEW, NULL, NULL, FALSE, curbuf); apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf); apply_autocmds(EVENT_TABNEW, NULL, NULL, FALSE, curbuf); *************** *** 3939,3945 **** last_status(FALSE); /* status line may appear or disappear */ (void)win_comp_pos(); /* recompute w_winrow for all windows */ - must_redraw = CLEAR; /* need to redraw everything */ #ifdef FEAT_DIFF diff_need_scrollbind = TRUE; #endif --- 3939,3944 ---- *************** *** 3973,3979 **** apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf); } ! redraw_all_later(CLEAR); } /* --- 3972,3978 ---- apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf); } ! redraw_all_later(NOT_VALID); } /* *************** *** 6569,6575 **** win_comp_pos(); if (wp != NULL && close_curwin) win_goto(wp); ! redraw_all_later(CLEAR); } clear_snapshot(curtab, idx); } --- 6568,6574 ---- win_comp_pos(); if (wp != NULL && close_curwin) win_goto(wp); ! redraw_all_later(NOT_VALID); } clear_snapshot(curtab, idx); } *** ../vim-8.1.0697/src/version.c 2019-01-06 16:23:29.499325079 +0100 --- src/version.c 2019-01-06 17:04:09.853949947 +0100 *************** *** 801,802 **** --- 801,804 ---- { /* Add new patch number below this line */ + /**/ + 698, /**/ -- Two percent of zero is almost nothing. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///