aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/version.c2
-rw-r--r--src/nvim/window.c13
2 files changed, 10 insertions, 5 deletions
diff --git a/src/nvim/version.c b/src/nvim/version.c
index b32da8937e..c93fc5083c 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -227,7 +227,7 @@ static int included_patches[] = {
371,
370,
//369,
- //368,
+ 368,
367,
//366,
//365,
diff --git a/src/nvim/window.c b/src/nvim/window.c
index b9714ce690..dccf3e2efc 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -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();