mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-11 15:37:29 +02:00
Fix scroll wheel force feature
This commit is contained in:
+19
@@ -8878,6 +8878,9 @@ ins_mousescroll(dir)
|
||||
# ifdef FEAT_INS_EXPAND
|
||||
int did_scroll = FALSE;
|
||||
# endif
|
||||
# ifdef FEAT_GUI_SCROLL_WHEEL_FORCE
|
||||
int scroll_wheel_force = 0;
|
||||
# endif
|
||||
|
||||
tpos = curwin->w_cursor;
|
||||
|
||||
@@ -8907,19 +8910,35 @@ ins_mousescroll(dir)
|
||||
)
|
||||
# endif
|
||||
{
|
||||
# ifdef FEAT_GUI_SCROLL_WHEEL_FORCE
|
||||
if (gui.in_use && gui.scroll_wheel_force >= 1)
|
||||
{
|
||||
scroll_wheel_force = gui.scroll_wheel_force;
|
||||
if (scroll_wheel_force > 1000) scroll_wheel_force = 1000;
|
||||
}
|
||||
else
|
||||
scroll_wheel_force = dir >= 0 ? 3 : 6;
|
||||
# endif
|
||||
if (dir == MSCR_DOWN || dir == MSCR_UP)
|
||||
{
|
||||
if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL))
|
||||
scroll_redraw(dir,
|
||||
(long)(curwin->w_botline - curwin->w_topline));
|
||||
else
|
||||
# ifdef FEAT_GUI_SCROLL_WHEEL_FORCE
|
||||
scroll_redraw(dir, scroll_wheel_force);
|
||||
# else
|
||||
scroll_redraw(dir, 3L);
|
||||
# endif
|
||||
}
|
||||
#ifdef FEAT_GUI
|
||||
else
|
||||
{
|
||||
int val, step = 6;
|
||||
|
||||
# ifdef FEAT_GUI_SCROLL_WHEEL_FORCE
|
||||
step = scroll_wheel_force;
|
||||
# endif
|
||||
if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL))
|
||||
step = W_WIDTH(curwin);
|
||||
val = curwin->w_leftcol + (dir == MSCR_RIGHT ? -step : step);
|
||||
|
||||
@@ -4566,6 +4566,15 @@ nv_mousescroll(cap)
|
||||
curbuf = curwin->w_buffer;
|
||||
}
|
||||
# endif
|
||||
# ifdef FEAT_GUI_SCROLL_WHEEL_FORCE
|
||||
if (gui.in_use && gui.scroll_wheel_force >= 1)
|
||||
{
|
||||
scroll_wheel_force = gui.scroll_wheel_force;
|
||||
if (scroll_wheel_force > 1000) scroll_wheel_force = 1000;
|
||||
}
|
||||
else
|
||||
scroll_wheel_force = cap->arg >= 0 ? 3 : 6;
|
||||
# endif
|
||||
|
||||
if (cap->arg == MSCR_UP || cap->arg == MSCR_DOWN)
|
||||
{
|
||||
@@ -4575,8 +4584,13 @@ nv_mousescroll(cap)
|
||||
}
|
||||
else
|
||||
{
|
||||
# ifdef FEAT_GUI_SCROLL_WHEEL_FORCE
|
||||
cap->count1 = scroll_wheel_force;
|
||||
cap->count0 = scroll_wheel_force;
|
||||
# else
|
||||
cap->count1 = 3;
|
||||
cap->count0 = 3;
|
||||
#endif
|
||||
nv_scroll_line(cap);
|
||||
}
|
||||
}
|
||||
@@ -4587,6 +4601,10 @@ nv_mousescroll(cap)
|
||||
if (!curwin->w_p_wrap)
|
||||
{
|
||||
int val, step = 6;
|
||||
|
||||
# ifdef FEAT_GUI_SCROLL_WHEEL_FORCE
|
||||
step = scroll_wheel_force;
|
||||
# endif
|
||||
if (mod_mask & (MOD_MASK_SHIFT | MOD_MASK_CTRL))
|
||||
step = W_WIDTH(curwin);
|
||||
val = curwin->w_leftcol + (cap->arg == MSCR_RIGHT ? -step : +step);
|
||||
|
||||
Reference in New Issue
Block a user