diff options
author | Bram Moolenaar <Bram@vim.org> | 2012-07-19 18:05:44 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2012-07-19 18:05:44 +0200 |
commit | 6763c140d656703814d9a268c8492762aee69469 (patch) | |
tree | 4b3057d4acf252fe2ffc054a49e62ceaf49f1ff0 | |
parent | 049d8e79cf49a38c1243f4ec33e48a9bd89b5e4c (diff) |
updated for version 7.3.608v7.3.608
Problem: winrestview() does not always restore the view correctly.
Solution: Call win_new_height() and win_new_width(). (Lech Lorens)
-rw-r--r-- | src/eval.c | 4 | ||||
-rw-r--r-- | src/proto/window.pro | 2 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/window.c | 6 |
4 files changed, 10 insertions, 4 deletions
diff --git a/src/eval.c b/src/eval.c index f9db2f9ffe..b83334c361 100644 --- a/src/eval.c +++ b/src/eval.c @@ -18601,6 +18601,10 @@ f_winrestview(argvars, rettv) curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol"); check_cursor(); + win_new_height(curwin, curwin->w_height); +# ifdef FEAT_VERTSPLIT + win_new_width(curwin, W_WIDTH(curwin)); +# endif changed_window_setting(); if (curwin->w_topline == 0) diff --git a/src/proto/window.pro b/src/proto/window.pro index 847b64bb50..92229692f5 100644 --- a/src/proto/window.pro +++ b/src/proto/window.pro @@ -51,6 +51,8 @@ void win_setwidth_win __ARGS((int width, win_T *wp)); void win_setminheight __ARGS((void)); void win_drag_status_line __ARGS((win_T *dragwin, int offset)); void win_drag_vsep_line __ARGS((win_T *dragwin, int offset)); +void win_new_height __ARGS((win_T *wp, int height)); +void win_new_width __ARGS((win_T *wp, int width)); void win_comp_scroll __ARGS((win_T *wp)); void command_height __ARGS((void)); void last_status __ARGS((int morewin)); diff --git a/src/version.c b/src/version.c index 5dd3776c45..c8a283e06b 100644 --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 608, +/**/ 607, /**/ 606, diff --git a/src/window.c b/src/window.c index c0b7b8b91b..e1dc940398 100644 --- a/src/window.c +++ b/src/window.c @@ -54,7 +54,6 @@ static void frame_append __ARGS((frame_T *after, frame_T *frp)); static void frame_insert __ARGS((frame_T *before, frame_T *frp)); static void frame_remove __ARGS((frame_T *frp)); #ifdef FEAT_VERTSPLIT -static void win_new_width __ARGS((win_T *wp, int width)); static void win_goto_ver __ARGS((int up, long count)); static void win_goto_hor __ARGS((int left, long count)); #endif @@ -71,7 +70,6 @@ static win_T *restore_snapshot_rec __ARGS((frame_T *sn, frame_T *fr)); static win_T *win_alloc __ARGS((win_T *after, int hidden)); static void set_fraction __ARGS((win_T *wp)); -static void win_new_height __ARGS((win_T *wp, int height)); #define URL_SLASH 1 /* path_is_url() has found "://" */ #define URL_BACKSLASH 2 /* path_is_url() has found ":\\" */ @@ -5557,7 +5555,7 @@ set_fraction(wp) * This takes care of the things inside the window, not what happens to the * window position, the frame or to other windows. */ - static void + void win_new_height(wp, height) win_T *wp; int height; @@ -5697,7 +5695,7 @@ win_new_height(wp, height) /* * Set the width of a window. */ - static void + void win_new_width(wp, width) win_T *wp; int width; |