diff options
Diffstat (limited to 'source/ap/vim/patches/7.3.084')
-rw-r--r-- | source/ap/vim/patches/7.3.084 | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.084 b/source/ap/vim/patches/7.3.084 new file mode 100644 index 00000000..a46892e3 --- /dev/null +++ b/source/ap/vim/patches/7.3.084 @@ -0,0 +1,123 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.084 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.084 +Problem: When splitting the window, the new one scrolls with the cursor at + the top. +Solution: Compute w_fraction before setting the new height. +Files: src/window.c + + +*** ../vim-7.3.083/src/window.c 2010-09-21 16:56:29.000000000 +0200 +--- src/window.c 2010-12-17 17:09:51.000000000 +0100 +*************** +*** 70,76 **** + #endif /* FEAT_WINDOWS */ + + static win_T *win_alloc __ARGS((win_T *after, int hidden)); +! static void win_new_height __ARGS((win_T *, int)); + + #define URL_SLASH 1 /* path_is_url() has found "://" */ + #define URL_BACKSLASH 2 /* path_is_url() has found ":\\" */ +--- 70,77 ---- + #endif /* FEAT_WINDOWS */ + + 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 ":\\" */ +*************** +*** 983,992 **** +--- 984,999 ---- + else + frame_append(curfrp, frp); + ++ /* Set w_fraction now so that the cursor keeps the same relative ++ * vertical position. */ ++ set_fraction(oldwin); ++ wp->w_fraction = oldwin->w_fraction; ++ + #ifdef FEAT_VERTSPLIT + if (flags & WSP_VERT) + { + wp->w_p_scr = curwin->w_p_scr; ++ + if (need_status) + { + win_new_height(oldwin, oldwin->w_height - 1); +*************** +*** 5453,5458 **** +--- 5460,5478 ---- + + #endif /* FEAT_WINDOWS */ + ++ #define FRACTION_MULT 16384L ++ ++ /* ++ * Set wp->w_fraction for the current w_wrow and w_height. ++ */ ++ static void ++ set_fraction(wp) ++ win_T *wp; ++ { ++ wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT ++ + FRACTION_MULT / 2) / (long)wp->w_height; ++ } ++ + /* + * Set the height of a window. + * This takes care of the things inside the window, not what happens to the +*************** +*** 5465,5471 **** + { + linenr_T lnum; + int sline, line_size; +- #define FRACTION_MULT 16384L + + /* Don't want a negative height. Happens when splitting a tiny window. + * Will equalize heights soon to fix it. */ +--- 5485,5490 ---- +*************** +*** 5475,5482 **** + return; /* nothing to do */ + + if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0) +! wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT +! + FRACTION_MULT / 2) / (long)wp->w_height; + + wp->w_height = height; + wp->w_skipcol = 0; +--- 5494,5500 ---- + return; /* nothing to do */ + + if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0) +! set_fraction(wp); + + wp->w_height = height; + wp->w_skipcol = 0; +*** ../vim-7.3.083/src/version.c 2010-12-17 16:27:10.000000000 +0100 +--- src/version.c 2010-12-17 17:14:19.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 84, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +12. Sing along at the opera. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |