diff options
Diffstat (limited to 'data/vim/patches/8.1.1421')
-rw-r--r-- | data/vim/patches/8.1.1421 | 244 |
1 files changed, 244 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1421 b/data/vim/patches/8.1.1421 new file mode 100644 index 000000000..82bcb1284 --- /dev/null +++ b/data/vim/patches/8.1.1421 @@ -0,0 +1,244 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.1421 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.1421 +Problem: Drawing "~" line in popup window. +Solution: Just draw text in the last line of the popup window. +Files: src/screen.c, src/structs.h, src/popupwin.c, + src/proto/popupwin.pro, src/testdir/test_popupwin.vim, + src/testdir/dumps/Test_popupwin_05.dump, + src/testdir/dumps/Test_popupwin_06.dump + +*** ../vim-8.1.1420/src/screen.c 2019-05-29 22:28:25.763184805 +0200 +--- src/screen.c 2019-05-30 00:07:36.461352821 +0200 +*************** +*** 1030,1035 **** +--- 1030,1041 ---- + + if (lowest_wp == NULL) + break; ++ ++ // Recompute the position if the text changed. ++ if (lowest_wp->w_popup_last_changedtick ++ != CHANGEDTICK(lowest_wp->w_buffer)) ++ popup_adjust_position(lowest_wp); ++ + win_update(lowest_wp); + lowest_wp->w_popup_flags |= POPF_REDRAWN; + } +*************** +*** 2119,2124 **** +--- 2125,2133 ---- + && wp->w_lines[idx].wl_lnum == lnum + && lnum > wp->w_topline + && !(dy_flags & (DY_LASTLINE | DY_TRUNCATE)) ++ #ifdef FEAT_TEXT_PROP ++ && !bt_popup(wp->w_buffer) ++ #endif + && srow + wp->w_lines[idx].wl_size > wp->w_height + #ifdef FEAT_DIFF + && diff_check_fill(wp, lnum) == 0 +*************** +*** 2274,2279 **** +--- 2283,2295 ---- + wp->w_filler_rows = wp->w_height - srow; + } + #endif ++ #ifdef FEAT_TEXT_PROP ++ else if (bt_popup(wp->w_buffer)) ++ { ++ // popup line that doesn't fit is left as-is ++ wp->w_botline = lnum; ++ } ++ #endif + else if (dy_flags & DY_TRUNCATE) /* 'display' has "truncate" */ + { + int scr_row = W_WINROW(wp) + wp->w_height - 1; +*************** +*** 2334,2340 **** + + // Make sure the rest of the screen is blank + // put '~'s on rows that aren't part of the file. +! win_draw_end(wp, '~', ' ', FALSE, row, wp->w_height, HLF_EOB); + } + + #ifdef SYN_TIME_LIMIT +--- 2350,2360 ---- + + // Make sure the rest of the screen is blank + // put '~'s on rows that aren't part of the file. +! win_draw_end(wp, +! #ifdef FEAT_TEXT_PROP +! bt_popup(wp->w_buffer) ? ' ' : +! #endif +! '~', ' ', FALSE, row, wp->w_height, HLF_EOB); + } + + #ifdef SYN_TIME_LIMIT +*** ../vim-8.1.1420/src/structs.h 2019-05-27 23:36:17.456452208 +0200 +--- src/structs.h 2019-05-29 23:55:07.389119328 +0200 +*************** +*** 2881,2886 **** +--- 2881,2888 ---- + int w_maxwidth; // "maxwidth" for popup window + int w_wantline; // "line" for popup window + int w_wantcol; // "col" for popup window ++ varnumber_T w_popup_last_changedtick; // b:changedtick when position was ++ // computed + # if defined(FEAT_TIMERS) + timer_T *w_popup_timer; // timer for closing popup window + # endif +*** ../vim-8.1.1420/src/popupwin.c 2019-05-29 23:14:25.401172162 +0200 +--- src/popupwin.c 2019-05-30 00:07:32.617372125 +0200 +*************** +*** 151,157 **** + /* + * Adjust the position and size of the popup to fit on the screen. + */ +! static void + popup_adjust_position(win_T *wp) + { + linenr_T lnum; +--- 151,157 ---- + /* + * Adjust the position and size of the popup to fit on the screen. + */ +! void + popup_adjust_position(win_T *wp) + { + linenr_T lnum; +*************** +*** 209,214 **** +--- 209,216 ---- + wp->w_height = wp->w_maxheight; + if (wp->w_height > Rows - wp->w_winrow) + wp->w_height = Rows - wp->w_winrow; ++ ++ wp->w_popup_last_changedtick = CHANGEDTICK(wp->w_buffer); + } + + /* +*** ../vim-8.1.1420/src/proto/popupwin.pro 2019-05-29 20:26:32.525530253 +0200 +--- src/proto/popupwin.pro 2019-05-29 23:58:15.652171411 +0200 +*************** +*** 1,13 **** + /* popupwin.c */ + void f_popup_create(typval_T *argvars, typval_T *rettv); + int popup_any_visible(void); + void f_popup_close(typval_T *argvars, typval_T *rettv); + void f_popup_hide(typval_T *argvars, typval_T *rettv); +- void f_popup_getposition(typval_T *argvars, typval_T *rettv); + void f_popup_show(typval_T *argvars, typval_T *rettv); + void popup_close(int id); + void popup_close_tabpage(tabpage_T *tp, int id); + void close_all_popups(void); + void ex_popupclear(exarg_T *eap); + void f_popup_move(typval_T *argvars, typval_T *rettv); + /* vim: set ft=c : */ +--- 1,14 ---- + /* popupwin.c */ ++ void popup_adjust_position(win_T *wp); + void f_popup_create(typval_T *argvars, typval_T *rettv); + int popup_any_visible(void); + void f_popup_close(typval_T *argvars, typval_T *rettv); + void f_popup_hide(typval_T *argvars, typval_T *rettv); + void f_popup_show(typval_T *argvars, typval_T *rettv); + void popup_close(int id); + void popup_close_tabpage(tabpage_T *tp, int id); + void close_all_popups(void); + void ex_popupclear(exarg_T *eap); + void f_popup_move(typval_T *argvars, typval_T *rettv); ++ void f_popup_getposition(typval_T *argvars, typval_T *rettv); + /* vim: set ft=c : */ +*** ../vim-8.1.1420/src/testdir/test_popupwin.vim 2019-05-29 23:14:25.401172162 +0200 +--- src/testdir/test_popupwin.vim 2019-05-30 00:09:27.736794071 +0200 +*************** +*** 41,51 **** + call term_sendkeys(buf, ":quit!\<CR>") + call VerifyScreenDump(buf, 'Test_popupwin_04', {}) + +! " resize popup + call term_sendkeys(buf, ":call popup_move(popupwin, {'minwidth': 15, 'maxwidth': 25, 'minheight': 3, 'maxheight': 5})\<CR>") + call term_sendkeys(buf, ":redraw\<CR>") + call VerifyScreenDump(buf, 'Test_popupwin_05', {}) + + " clean up + call StopVimInTerminal(buf) + call delete('XtestPopup') +--- 41,56 ---- + call term_sendkeys(buf, ":quit!\<CR>") + call VerifyScreenDump(buf, 'Test_popupwin_04', {}) + +! " resize popup, show empty line at bottom + call term_sendkeys(buf, ":call popup_move(popupwin, {'minwidth': 15, 'maxwidth': 25, 'minheight': 3, 'maxheight': 5})\<CR>") + call term_sendkeys(buf, ":redraw\<CR>") + call VerifyScreenDump(buf, 'Test_popupwin_05', {}) + ++ " show not fitting line at bottom ++ call term_sendkeys(buf, ":call setbufline(winbufnr(popupwin), 3, 'this line will not fit here')\<CR>") ++ call term_sendkeys(buf, ":redraw\<CR>") ++ call VerifyScreenDump(buf, 'Test_popupwin_06', {}) ++ + " clean up + call StopVimInTerminal(buf) + call delete('XtestPopup') +*** ../vim-8.1.1420/src/testdir/dumps/Test_popupwin_05.dump 2019-05-27 21:53:53.990229301 +0200 +--- src/testdir/dumps/Test_popupwin_05.dump 2019-05-29 23:36:51.574682812 +0200 +*************** +*** 3,9 **** + |~| @73 + |~| @6|o+0#0000001#ffd7ff255|t|h|e|r| |t|a|b| @5| +0#4040ff13#ffffff0@51 + |~| @6|a+0#0000001#ffd7ff255| |c+0#ff404010&|o|m@1|e|n|t| +0#0000001&|l|i|n|e| | +0#4040ff13#ffffff0@51 +! |~| @6|~+0&#ffd7ff255| @13| +0&#ffffff0@51 + |~| @73 + |~| @73 + |~| @73 +--- 3,9 ---- + |~| @73 + |~| @6|o+0#0000001#ffd7ff255|t|h|e|r| |t|a|b| @5| +0#4040ff13#ffffff0@51 + |~| @6|a+0#0000001#ffd7ff255| |c+0#ff404010&|o|m@1|e|n|t| +0#0000001&|l|i|n|e| | +0#4040ff13#ffffff0@51 +! |~| @6| +0&#ffd7ff255@14| +0&#ffffff0@51 + |~| @73 + |~| @73 + |~| @73 +*** ../vim-8.1.1420/src/testdir/dumps/Test_popupwin_06.dump 2019-05-30 00:10:59.660332551 +0200 +--- src/testdir/dumps/Test_popupwin_06.dump 2019-05-30 00:09:35.280756197 +0200 +*************** +*** 0 **** +--- 1,10 ---- ++ > +0&#ffffff0@74 ++ |~+0#4040ff13&| @73 ++ |~| @73 ++ |~| @6|o+0#0000001#ffd7ff255|t|h|e|r| |t|a|b| @15| +0#4040ff13#ffffff0@41 ++ |~| @6|a+0#0000001#ffd7ff255| |c+0#ff404010&|o|m@1|e|n|t| +0#0000001&|l|i|n|e| @10| +0#4040ff13#ffffff0@41 ++ |~| @6|t+0#0000001#ffd7ff255|h|i|s| |l|i|n|e| |w|i|l@1| |n|o|t| |f|i|t| |h|e| +0#4040ff13#ffffff0@41 ++ |~| @73 ++ |~| @73 ++ |~| @73 ++ |:+0#0000000&|r|e|d|r|a|w| @49|0|,|0|-|1| @8|A|l@1| +*** ../vim-8.1.1420/src/version.c 2019-05-29 23:14:25.401172162 +0200 +--- src/version.c 2019-05-29 23:35:38.523045031 +0200 +*************** +*** 769,770 **** +--- 769,772 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1421, + /**/ + + +-- +hundred-and-one symptoms of being an internet addict: +49. You never have to deal with busy signals when calling your ISP...because + you never log off. + + /// 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 /// |