1. 29 Apr, 2020 1 commit
    • Jeffrey Lee's avatar
      LineScroll scaling & smoother scrolling · a379c4e8
      Jeffrey Lee authored
      When performing a scroll operation, the previous version of the module
      would send all the scroll requests at once, causing the target to
      instantly jump to the new position. This new version will split the
      operation multiple chunks (with calls to Wimp_Poll / Wimp_PollIdle
      inbetween), which allows for:
      1. The scroll speed/scale factor to be applied when normal "scroll" wimp
      messages are used (i.e. "line scroll" option is enabled). This was
      effectively impossible to support in the previous version, because it
      requires the module to send a scroll request to the target task, wait
      for the target to have acted on it (i.e. wait for the next null poll),
      and then read the window state to determine how far it scrolled (so that
      future scroll requests can use that value to judge how many scroll
      requests must be sent to get the desired motion)
      2. Smooth (ish) scrolling for all scroll methods. Currently the code
      will attempt to scroll by one half of the remaining distance, per
      centisecond. This is enough for the motion to be visible to the user,
      while still fast enough to keep the desktop responsive.
      Version 0.02. Tagged as 'WindowScroll-0_02'
  2. 12 Apr, 2020 1 commit
    • Jeffrey Lee's avatar
      WindowScroll module implementation · 7b2c5fd7
      Jeffrey Lee authored
      A BSD-licensed clone of RISCOS Ltd's WindowScroll module, based on the
      documentation at
      Currently it's a bit basic - future improvements could include:
      * Have the "Speed" setting affect line scroll mode (read back the new
      window position and estimate how much further we can scroll it before
      overshooting - difficult because the scroll/redraw events are buffered
      by the Wimp)
      * Momentum/acceleration to ease scrolling long distances
      Version 0.01. Tagged as 'WindowScroll-0_01'