less rough skipscroll
authorroot <root>
Mon, 18 Jun 2007 13:38:12 +0000 (13:38 +0000)
committerroot <root>
Mon, 18 Jun 2007 13:38:12 +0000 (13:38 +0000)
Changes
doc/rxvt.1.pod
src/command.C
src/init.C
src/optinc.h

diff --git a/Changes b/Changes
index bdeb07f21c379d5201f587b9de15a721087fbd4a..ef93dbd807a5e276ec017d96448a131eeab2b05c 100644 (file)
--- a/Changes
+++ b/Changes
@@ -18,13 +18,13 @@ WISH: anyevent mouse notification / manage MotionMask better.
 WISH: kick out xpm.C, replace by pixbuf
 DUMB: support tex fonts
 
-TODO: skipscroll option
 TODO: really enable libafterimage by default (6mb => 10mb rss without using it)?
 TODO: document -blr units, and possibly fix blur (20 seems to be about 3 pixels,
       80 seems to be about 3 pixels, too, just much slower).
 TODO: when window partially off-screen, -blr does not have any effect anymore.
 TODO: rid of global dpy variable.
 8.
+       - new option: skipScroll/-ss, enabled by default.
         - go with the times and expect x11 library files in /usr/lib, not
           /usr/X11R6/lib.
        - initial transparency improvement/afterstep support
index ecae48c0d295550fe7ea00b6013ed2c7bc876522..6dcc08d9098a80adab769be0294cb325c30781a0 100644 (file)
@@ -110,7 +110,11 @@ Turn on/off simulated reverse video; resource B<reverseVideo>.
 
 =item B<-j>|B<+j>
 
-Turn on/off jump scrolling; resource B<jumpScroll>.
+Turn on/off jump scrolling (allow multiple lines per refresh); resource B<jumpScroll>.
+
+=item B<-ss>|B<+ss>
+
+Turn on/off skip scrolling (allow multiple screens per refresh); resource B<skipScroll>.
 
 =item B<-ip>|B<+ip> | B<-tr>|B<+tr>
 
@@ -609,9 +613,25 @@ B<+rv>. See note in B<COLORS AND GRAPHICS> section.
 
 =item B<jumpScroll:> I<boolean>
 
-B<True>: specify that jump scrolling should be used. When scrolling
-quickly, fewer screen updates are performed [default]; option B<-j>.
-B<False>: specify that smooth scrolling should be used; option B<+j>.
+B<True>: specify that jump scrolling should be used. When receiving lots
+of lines, @@RXVT_NAME@@ will only scroll once a whole screen height of lines
+has been read, resulting in fewer updates while still displaying every
+received line; option B<-j>.
+
+B<False>: specify that smooth scrolling should be used. @@RXVT_NAME@@ will
+force a screen refresh on each new line it received; option B<+j>.
+
+=item B<skipScroll:> I<boolean>
+
+B<True>: (the default) specify that skip scrolling should be used. When
+receiving lots of lines, @@RXVT_NAME@@ will only scroll once in a while
+(around 60 times per second), resulting in far fewer updates. This can
+result in @@RXVT_NAME@@ not ever displaying some of the lines it receives;
+option B<-ss>.
+
+B<False>: specify that everything is to be displayed, even
+if the refresh is too fast for the human eye to read anything (or the
+monitor to display anything); option B<+ss>.
 
 =item B<inheritPixmap:> I<boolean>
 
index e7ab402e7efaeb65964d97144e479dcd12f10212..b47d477ebeb2ad0c207d3d7387b7f9e215d43217 100644 (file)
@@ -2295,7 +2295,7 @@ rxvt_term::cmd_parse ()
                     {
                       refresh_count = 0;
 
-                      if (!option (Opt_skipScroll) || io_manager::now () > NOW + .1)
+                      if (!option (Opt_skipScroll) || io_manager::now () > NOW + 1. / 60.)
                         {
                           refreshnow = true;
                           ch = NOCHAR;
index 8c0f064dd6118c571364e17689b4983452c1b6f9..ea88256331294a1b25491c9fb0e3f57960e34f92 100644 (file)
@@ -215,6 +215,7 @@ rxvt_term::init_vars ()
   set_option (Opt_scrollBar);
   set_option (Opt_scrollTtyOutput);
   set_option (Opt_jumpScroll);
+  set_option (Opt_skipScroll);
   set_option (Opt_secondaryScreen);
   set_option (Opt_secondaryScroll);
   set_option (Opt_pastableTabs);
index 319628a51c83b35b7b692a8ccf8526f6b72727ae..f72af00b17f18838c3f895cede4825366a1938d2 100644 (file)
  def(tripleclickwords,     14)
  def(scrollWithBuffer,     15)
  def(jumpScroll,           16)
- def(skipScroll,           16)
- def(mouseWheelScrollPage, 17)
+ def(skipScroll,           17)
+ def(mouseWheelScrollPage, 18)
 #if POINTER_BLANK
- def(pointerBlank,         18)
+ def(pointerBlank,         19)
 #else
  nodef(pointerBlank)
 #endif
- def(cursorBlink,          19)
- def(secondaryScreen,      20)
- def(secondaryScroll,      21)
- def(pastableTabs,         22)
- def(cursorUnderline,      23)
+ def(cursorBlink,          20)
+ def(secondaryScreen,      21)
+ def(secondaryScroll,      22)
+ def(pastableTabs,         23)
+ def(cursorUnderline,      24)
 #if ENABLE_FRILLS
- def(insecure,             24) // insecure esc sequences
- def(borderLess,           25) // mwm borderless hints
- def(hold,                 26) // hold window open after exit
- def(override_redirect,    27)
- def(skipBuiltinGlyphs,    28) // do not use internal glyphs
+ def(insecure,             25) // insecure esc sequences
+ def(borderLess,           26) // mwm borderless hints
+ def(hold,                 27) // hold window open after exit
+ def(override_redirect,    28)
+ def(skipBuiltinGlyphs,    29) // do not use internal glyphs
  def(urgentOnBell,         30)
 #else
  nodef(insecure)
  nodef(urgentOnBell)
 #endif
 #if ENABLE_STYLES
- def(intensityStyles,      29) // font styles imply intensity
+ def(intensityStyles,      31) // font styles imply intensity
 #else
  nodef(intensityStyles)
 #endif
 #if ISO_14755
- def(iso14755_52,          31)
+ def(iso14755_52,          32)
 #else
  nodef(iso14755_52)
 #endif