# HG changeset patch # User Bram Moolenaar # Date 1566062106 -7200 # Node ID 65b89c9eb946906b2649ab45ec6673611b019f9a # Parent 47f896748fbab792ac7a495d2671812f6a776a5b patch 8.1.1874: modeless selection in popup window overlaps scrollbar commit https://github.com/vim/vim/commit/4dd751b95696957c7baabad2f19f9e02fc596eae Author: Bram Moolenaar Date: Sat Aug 17 19:10:53 2019 +0200 patch 8.1.1874: modeless selection in popup window overlaps scrollbar Problem: Modeless selection in popup window overlaps scrollbar. Solution: Subtract scrollbar from max_col. (closes https://github.com/vim/vim/issues/4773) diff --git a/src/testdir/dumps/Test_popupwin_select_01.dump b/src/testdir/dumps/Test_popupwin_select_01.dump --- a/src/testdir/dumps/Test_popupwin_select_01.dump +++ b/src/testdir/dumps/Test_popupwin_select_01.dump @@ -1,10 +1,10 @@ >1+0&#ffffff0| @73 |2| @73 -|3| @7|╔+0#0000001#ffd7ff255|═@17|╗| +0#0000000#ffffff0@45 -|4| @7|║+0#0000001#ffd7ff255|t|h|e| |w+1#0000000#ffffff0|o|r|d| @9|║+0#0000001#ffd7ff255| +0#0000000#ffffff0@45 -|5| @7|║+0#0000001#ffd7ff255|s+1#0000000#ffffff0|o|m|e| |m|o|r|e| @8|║+0#0000001#ffd7ff255| +0#0000000#ffffff0@45 -|6| @7|║+0#0000001#ffd7ff255|s+1#0000000#ffffff0|e|v|e|r|a|l| |w|o|r|d|s| +0#0000001#ffd7ff255|h|e|r|e|║| +0#0000000#ffffff0@45 -|7| @7|╚+0#0000001#ffd7ff255|═@17|╝| +0#0000000#ffffff0@45 +|3| @7|╔+0#0000001#ffd7ff255|═@18|╗| +0#0000000#ffffff0@44 +|4| @7|║+0#0000001#ffd7ff255|t|h|e| |w+1#0000000#ffffff0|o|r|d| @9| +0|║+0#0000001#ffd7ff255| +0#0000000#ffffff0@44 +|5| @7|║+0#0000001#ffd7ff255|s+1#0000000#ffffff0|o|m|e| |m|o|r|e| @8| +0&#a8a8a8255|║+0#0000001#ffd7ff255| +0#0000000#ffffff0@44 +|6| @7|║+0#0000001#ffd7ff255|s+1#0000000#ffffff0|e|v|e|r|a|l| |w|o|r|d|s| +0#0000001#ffd7ff255|h|e|r|e| +0#0000000#a8a8a8255|║+0#0000001#ffd7ff255| +0#0000000#ffffff0@44 +|7| @7|╚+0#0000001#ffd7ff255|═@18|╝| +0#0000000#ffffff0@44 |8| @73 |9| @73 |:|c|a|l@1| |S|e|l|e|c|t|1|(|)| @41|1|,|1| @10|T|o|p| diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim --- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -506,11 +506,12 @@ func Test_popup_select() let lines =<< trim END set clipboard=autoselect call setline(1, range(1, 20)) - let winid = popup_create(['the word', 'some more', 'several words here'], #{ + let winid = popup_create(['the word', 'some more', 'several words here', 'invisible', '5', '6', '7'], #{ \ drag: 1, \ border: [], \ line: 3, \ col: 10, + \ maxheight: 3, \ }) func Select1() call feedkeys("\\\\\", "xt") diff --git a/src/ui.c b/src/ui.c --- a/src/ui.c +++ b/src/ui.c @@ -1098,7 +1098,8 @@ clip_start_selection(int col, int row, i // Click in a popup window restricts selection to that window, // excluding the border. cb->min_col = wp->w_wincol + wp->w_popup_border[3]; - cb->max_col = wp->w_wincol + popup_width(wp) - wp->w_popup_border[1]; + cb->max_col = wp->w_wincol + popup_width(wp) + - wp->w_popup_border[1] - wp->w_has_scrollbar; if (cb->max_col > screen_Columns) cb->max_col = screen_Columns; cb->min_row = wp->w_winrow + wp->w_popup_border[0]; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -770,6 +770,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1874, +/**/ 1873, /**/ 1872,