• David Lawrence Ramsey's avatar
    tweaks: set the target row for smooth scrolling more directly · 6f9bb53b
    David Lawrence Ramsey authored
    The function place_the_cursor() assumes that the viewport is up to date,
    i.e., that current is in range of edittop.  When uncutting or inserting,
    however, place_the_cursor() gets called on the out-of-date viewport
    first, and then a screen refresh is scheduled (which would put the
    viewport up to date).  This is backwards: the refresh should come before
    the cursor placement, and the only reason it works anyway is because the
    cap on the number of chunks to move backward papers over the problem by
    keeping current_y in screen range regardless.
    
    Fix this properly by simply setting current_y to the bottom row of the
    screen instead of calling place_the_cursor().  This value of current_y
    is only ever used when in smooth scrolling mode and the insertion (or
    paste) pushed the cursor offscreen.  In other situations, this value is
    overridden when place_the_cursor() gets called after a screen refresh.
    
    After that fix, the cap on the number of chunks to move backward is no
    longer needed.
    6f9bb53b
winio.c 110 KB