patch 8.1.2254: MS-Windows: mouse scroll wheel doesn't work in popup
Problem: MS-Windows: mouse scroll wheel doesn't work in popup.
Solution: Handle mouse wheel events separately. (closes #5138)
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 4ee1863..3cf782c 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -4262,6 +4262,32 @@
if (mouse_scroll_lines == 0)
init_mouse_wheel();
+#ifdef FEAT_TEXT_PROP
+ {
+ win_T *wp = gui_mouse_window(FIND_POPUP);
+
+ if (wp != NULL && popup_is_popup(wp))
+ {
+ cmdarg_T cap;
+ oparg_T oa;
+
+ // Mouse hovers over popup window, scroll it if possible.
+ mouse_row = wp->w_winrow;
+ mouse_col = wp->w_wincol;
+ vim_memset(&cap, 0, sizeof(cap));
+ cap.arg = zDelta < 0 ? MSCR_UP : MSCR_DOWN;
+ cap.cmdchar = zDelta < 0 ? K_MOUSEUP : K_MOUSEDOWN;
+ clear_oparg(&oa);
+ cap.oap = &oa;
+ nv_mousescroll(&cap);
+ update_screen(0);
+ setcursor();
+ out_flush();
+ return;
+ }
+ }
+#endif
+
mch_disable_flush();
if (mouse_scroll_lines > 0
&& mouse_scroll_lines < (size > 2 ? size - 2 : 1))