summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-08-17 19:10:53 +0200
committerBram Moolenaar <Bram@vim.org>2019-08-17 19:10:53 +0200
commit4dd751b95696957c7baabad2f19f9e02fc596eae (patch)
tree08122621d7329f505874087863fc142801bbcac8
parentdf707755554ecc102a908e8d5b64f2903f4f3686 (diff)
patch 8.1.1874: modeless selection in popup window overlaps scrollbarv8.1.1874
Problem: Modeless selection in popup window overlaps scrollbar. Solution: Subtract scrollbar from max_col. (closes #4773)
-rw-r--r--src/testdir/dumps/Test_popupwin_select_01.dump10
-rw-r--r--src/testdir/test_popupwin.vim3
-rw-r--r--src/ui.c3
-rw-r--r--src/version.c2
4 files changed, 11 insertions, 7 deletions
diff --git a/src/testdir/dumps/Test_popupwin_select_01.dump b/src/testdir/dumps/Test_popupwin_select_01.dump
index 779047de50..b6cedc5a92 100644
--- 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&#0000001|║+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
index 2c055f0501..fbd32be20f 100644
--- 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("\<F3>\<LeftMouse>\<F4>\<LeftDrag>\<LeftRelease>", "xt")
diff --git a/src/ui.c b/src/ui.c
index 153d0203c2..446cefcded 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -1098,7 +1098,8 @@ clip_start_selection(int col, int row, int repeated_click)
// 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
index 081e84ac70..875342178c 100644
--- 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,