Hi Bram and Vim developer, How to reproduce: - run vim $ vim -N -u NONE - open quickfix window and vsp and sp on top window. :copen|wincmd k|vsp|sp - open command-line window and close this. q:<CR>
Expected behavior: - Restore all window size before open command-line window. Actual behavior: - Top left window height is not restored. Investigation result: It is not going to see only up to the parent frame of the local frame in order to expand the height of window in the process to be restored in win_size_restore() I think that it may be processed in descending order of height window perhaps. However, the same problem can occur even for window width. I think a good solution to carry out twice the restore process. Attach a patch. please check and include this. Thank you. -- Best regards, Hirohito Higashi -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
diff -r 0efec12f52ac src/window.c --- a/src/window.c Thu Jul 10 22:01:47 2014 +0200 +++ b/src/window.c Tue Jul 15 00:45:21 2014 +0900 @@ -4836,15 +4836,18 @@ garray_T *gap; { win_T *wp; - int i; + int i, j; if (win_count() * 2 == gap->ga_len) { - i = 0; - for (wp = firstwin; wp != NULL; wp = wp->w_next) + for (j = 0; j < 2; ++j) { - frame_setwidth(wp->w_frame, ((int *)gap->ga_data)[i++]); - win_setheight_win(((int *)gap->ga_data)[i++], wp); + i = 0; + for (wp = firstwin; wp != NULL; wp = wp->w_next) + { + 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();