diff options
author | Bram Moolenaar <Bram@vim.org> | 2014-05-07 21:14:47 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2014-05-07 21:14:47 +0200 |
commit | 04ad7fe05c1c15c31949022d48e3008158f0657a (patch) | |
tree | cc9c8d09405205e76cb5f90f19eac4a0e30ef06d /src/ex_docmd.c | |
parent | 56b3bf89aa2021d20afabd8ec7b513beb1b8df25 (diff) |
updated for version 7.4.281v7.4.281
Problem: When a session file has more than one tabpage and 'showtabline' is
one the positions may be slightly off.
Solution: Set 'showtabline' to two while positioning windows.
Diffstat (limited to 'src/ex_docmd.c')
-rw-r--r-- | src/ex_docmd.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index a88cdd5641..a7df2c31aa 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -10290,6 +10290,7 @@ makeopens(fd, dirnow) char_u *sname; win_T *edited_win = NULL; int tabnr; + int restore_stal = FALSE; win_T *tab_firstwin; frame_T *tab_topframe; int cur_arg_idx = 0; @@ -10399,6 +10400,19 @@ makeopens(fd, dirnow) #endif /* + * When there are two or more tabpages and 'showtabline' is 1 the tabline + * will be displayed when creating the next tab. That resizes the windows + * in the first tab, which may cause problems. Set 'showtabline' to 2 + * temporarily to avoid that. + */ + if (p_stal == 1 && first_tabpage->tp_next != NULL) + { + if (put_line(fd, "set stal=2") == FAIL) + return FAIL; + restore_stal = TRUE; + } + + /* * May repeat putting Windows for each tab, when "tabpages" is in * 'sessionoptions'. * Don't use goto_tabpage(), it may change directory and trigger @@ -10548,6 +10562,8 @@ makeopens(fd, dirnow) || put_eol(fd) == FAIL) return FAIL; } + if (restore_stal && put_line(fd, "set stal=1") == FAIL) + return FAIL; /* * Wipe out an empty unnamed buffer we started in. |