vim-patch:7.4.368

Problem:    Restoring the window sizes after closing the command line window
            doesn't work properly if there are nested splits.
Solution:   Restore the sizes twice. (Hirohito Higashi)

https://code.google.com/p/vim/source/detail?r=v7-4-368
This commit is contained in:
Shougo Matsushita 2014-09-16 19:23:11 +09:00
parent 3b7b79e37d
commit f5320f645b
2 changed files with 10 additions and 5 deletions

View File

@ -227,7 +227,7 @@ static int included_patches[] = {
371,
370,
//369,
//368,
368,
367,
//366,
//365,

View File

@ -3800,10 +3800,15 @@ void win_size_save(garray_T *gap)
void win_size_restore(garray_T *gap)
{
if (win_count() * 2 == gap->ga_len) {
int i = 0;
FOR_ALL_WINDOWS(wp) {
frame_setwidth(wp->w_frame, ((int *)gap->ga_data)[i++]);
win_setheight_win(((int *)gap->ga_data)[i++], wp);
/* The order matters, because frames contain other frames, but it's
* difficult to get right. The easy way out is to do it twice. */
for (int j = 0; j < 2; ++j)
{
int i = 0;
FOR_ALL_WINDOWS(wp) {
frame_setwidth(wp->w_frame, ((int *)gap->ga_data)[i++]);
win_setheight_win(((int *)gap->ga_data)[i++], wp);
}
}
/* recompute the window positions */
(void)win_comp_pos();