mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	Merge pull request #23432 from neovim/backport-23298-to-release-0.9
[Backport release-0.9] fix(pum): show right-click menu above cmdline area
This commit is contained in:
		| @@ -399,6 +399,7 @@ void pum_display(pumitem_T *array, int size, int selected, bool array_changed, i | ||||
|     // room the window size will keep changing. | ||||
|   } while (pum_set_selected(selected, redo_count) && (++redo_count <= 2)); | ||||
|  | ||||
|   pum_grid.zindex = (State == MODE_CMDLINE) ? kZIndexCmdlinePopupMenu : kZIndexPopupMenu; | ||||
|   pum_redraw(); | ||||
| } | ||||
|  | ||||
| @@ -443,9 +444,6 @@ void pum_redraw(void) | ||||
|  | ||||
|   grid_assign_handle(&pum_grid); | ||||
|  | ||||
|   pum_grid.zindex = ((State == MODE_CMDLINE) | ||||
|                      ? kZIndexCmdlinePopupMenu : kZIndexPopupMenu); | ||||
|  | ||||
|   bool moved = ui_comp_put_grid(&pum_grid, pum_row, pum_col - col_off, | ||||
|                                 pum_height, grid_width, false, true); | ||||
|   bool invalid_grid = moved || pum_invalid; | ||||
| @@ -1088,6 +1086,7 @@ void pum_show_popupmenu(vimmenu_T *menu) | ||||
|   for (;;) { | ||||
|     pum_is_visible = true; | ||||
|     pum_is_drawn = true; | ||||
|     pum_grid.zindex = kZIndexCmdlinePopupMenu;  // show above cmdline area #23275 | ||||
|     pum_redraw(); | ||||
|     setcursor_mayforce(true); | ||||
|  | ||||
|   | ||||
| @@ -3259,16 +3259,16 @@ describe('builtin popupmenu', function() | ||||
|       :let g:menustr = 'bar'          | | ||||
|     ]]) | ||||
|     eq('bar', meths.get_var('menustr')) | ||||
|     feed('<RightMouse><20,1>') | ||||
|     feed('<RightMouse><20,2>') | ||||
|     screen:expect([[ | ||||
|       ^popup menu test                 | | ||||
|       {1:~                               }| | ||||
|       {1:~                               }| | ||||
|       {1:~                  }{n: foo }{1:        }| | ||||
|       {1:~                  }{n: bar }{1:        }| | ||||
|       {1:~                  }{n: baz }{1:        }| | ||||
|       :let g:menustr = 'bar'          | | ||||
|       :let g:menustr = 'b{n: baz }        | | ||||
|     ]]) | ||||
|     feed('<LeftMouse><22,4>') | ||||
|     feed('<LeftMouse><22,5>') | ||||
|     screen:expect([[ | ||||
|       ^popup menu test                 | | ||||
|       {1:~                               }| | ||||
| @@ -3675,7 +3675,7 @@ describe('builtin popupmenu with ui/ext_multigrid', function() | ||||
|       {n: foo }| | ||||
|       {n: bar }| | ||||
|       {n: baz }| | ||||
|     ]], float_pos={[4] = {{id = -1}, 'NW', 2, 2, 19, false, 100}}}) | ||||
|     ]], float_pos={[4] = {{id = -1}, 'NW', 2, 2, 19, false, 250}}}) | ||||
|     meths.input_mouse('left', 'press', '', 4, 2, 2) | ||||
|     screen:expect({grid=[[ | ||||
|     ## grid 1 | ||||
| @@ -3716,7 +3716,7 @@ describe('builtin popupmenu with ui/ext_multigrid', function() | ||||
|       {n: foo }| | ||||
|       {n: bar }| | ||||
|       {n: baz }| | ||||
|     ]], float_pos={[4] = {{id = -1}, 'NW', 2, 1, 3, false, 100}}}) | ||||
|     ]], float_pos={[4] = {{id = -1}, 'NW', 2, 1, 3, false, 250}}}) | ||||
|     meths.input_mouse('right', 'drag', '', 2, 3, 6) | ||||
|     screen:expect({grid=[[ | ||||
|     ## grid 1 | ||||
| @@ -3738,7 +3738,7 @@ describe('builtin popupmenu with ui/ext_multigrid', function() | ||||
|       {n: foo }| | ||||
|       {n: bar }| | ||||
|       {s: baz }| | ||||
|     ]], float_pos={[4] = {{id = -1}, 'NW', 2, 1, 3, false, 100}}}) | ||||
|     ]], float_pos={[4] = {{id = -1}, 'NW', 2, 1, 3, false, 250}}}) | ||||
|     meths.input_mouse('right', 'release', '', 2, 1, 6) | ||||
|     screen:expect({grid=[[ | ||||
|     ## grid 1 | ||||
| @@ -3780,7 +3780,7 @@ describe('builtin popupmenu with ui/ext_multigrid', function() | ||||
|       {n: foo }| | ||||
|       {n: bar }| | ||||
|       {n: baz }| | ||||
|     ]], float_pos={[4] = {{id = -1}, 'NW', 2, 1, 3, false, 100}}}) | ||||
|     ]], float_pos={[4] = {{id = -1}, 'NW', 2, 1, 3, false, 250}}}) | ||||
|     eq(true, screen.options.mousemoveevent) | ||||
|     meths.input_mouse('move', '', '', 2, 3, 6) | ||||
|     screen:expect({grid=[[ | ||||
| @@ -3803,7 +3803,7 @@ describe('builtin popupmenu with ui/ext_multigrid', function() | ||||
|       {n: foo }| | ||||
|       {n: bar }| | ||||
|       {s: baz }| | ||||
|     ]], float_pos={[4] = {{id = -1}, 'NW', 2, 1, 3, false, 100}}}) | ||||
|     ]], float_pos={[4] = {{id = -1}, 'NW', 2, 1, 3, false, 250}}}) | ||||
|     eq(true, screen.options.mousemoveevent) | ||||
|     meths.input_mouse('left', 'press', '', 2, 2, 6) | ||||
|     screen:expect({grid=[[ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 zeertzjq
					zeertzjq