{
make_current ();
- refresh_limit = 1;
refresh_count = 0;
flush ();
}
scr_move_to (scrollbar_position (ev.xbutton.y) - csrO,
scrollbar_size ());
want_refresh = 1;
- refresh_limit = 0;
scrollbar_show (1);
}
break;
refresh_count++;
- if (!option (Opt_jumpScroll)
- || (refresh_count >= refresh_limit * (nrow - 1)))
+ if (!option (Opt_jumpScroll) || refresh_count >= nrow - 1)
{
- refreshnow = true;
refresh_count = 0;
- ch = NOCHAR;
- break;
+
+ if (!option (Opt_skipScroll) || io_manager::now () > NOW + .1)
+ {
+ refreshnow = true;
+ ch = NOCHAR;
+ break;
+ }
}
// scr_add_lines only works for nlines <= nrow - 1.
/*
* If there have been a lot of new lines, then update the screen
- * What the heck I'll cheat and only refresh less than every page-full.
- * the number of pages between refreshes is refresh_limit, which
- * is incremented here because we must be doing flat-out scrolling.
+ * What the heck we'll cheat and only refresh less than every page-full.
+ * if skipScroll is enabled.
*/
if (refreshnow)
{
- if (option (Opt_jumpScroll) && refresh_limit < REFRESH_PERIOD)
- refresh_limit++;
- else
- {
- flag = true;
- //TODO: due to popular request, implement "skipscroll" option here
- scr_refresh ();
- want_refresh = 1;
- }
+ flag = true;
+ scr_refresh ();
+ want_refresh = 1;
}
}
#define ESC_ARGS 32 /* max # of args for esc sequences */
-/* a large REFRESH_PERIOD causes problems with `cat' */
-#define REFRESH_PERIOD 1
-
#ifndef MULTICLICK_TIME
# define MULTICLICK_TIME 500
#endif
saveLines = SAVELINES;
numpix_colors = TOTAL_COLORS;
- refresh_limit = 1;
refresh_type = SLOW_REFRESH;
oldcursor.row = oldcursor.col = -1;
def(tripleclickwords, 14)
def(scrollWithBuffer, 15)
def(jumpScroll, 16)
+ def(skipScroll, 16)
def(mouseWheelScrollPage, 17)
#if POINTER_BLANK
def(pointerBlank, 18)
#endif
def (loginShell)
def (jumpScroll)
+ def (skipScroll)
#ifdef HAVE_SCROLLBARS
def (scrollBar)
def (scrollBar_right)
mouse_slip_wheel_speed,
#endif
refresh_count,
- refresh_limit,
last_bot, /* scrollbar last bottom position */
last_top, /* scrollbar last top position */
last_state, /* scrollbar last state */
BOOL (Rs_reverseVideo, "reverseVideo", "rv", Opt_reverseVideo, 0, "reverse video"),
BOOL (Rs_loginShell, "loginShell", "ls", Opt_loginShell, 0, "login shell"),
BOOL (Rs_jumpScroll, "jumpScroll", "j", Opt_jumpScroll, 0, "jump scrolling"),
+ BOOL (Rs_skipScroll, "skipScroll", "ss", Opt_skipScroll, 0, "skip scrolling"),
BOOL (Rs_pastableTabs, "pastableTabs", "ptab", Opt_pastableTabs, 0, "tab characters are pastable"),
#if HAVE_SCROLLBARS
RSTRG (Rs_scrollstyle, "scrollstyle", "mode"),