Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
W WindowScroll
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Labels
    • Labels
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • RiscOS
    • SSources
  • Desktop
  • WindowScroll
  • Merge requests
  • !1

Merged
Created Apr 27, 2020 by Jeffrey Lee@jleeDeveloper

LineScroll scaling & smoother scrolling

  • Overview 0
  • Commits 1
  • Changes 3

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.

Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Source branch: Scaling