Xpra: Ticket #1429: partial line scrolling

Split from #1426.

We can hash lines into chunks so that we can detect scrolling even when the edges of the area don't scroll (ie: where the scrollbar would normally be). Each line could be split as: first ~32 pixels, middle bit, last 32 pixels. We can either continue to also calculate the hash for the whole line, or just always use the middle bit for calculating the scroll distances.

When sending scroll data, we use the distance values and try to add the edges to it (comparing their own hashes against the scroll distance specified is fast). Hashes that don't match will get sent as non-scroll areas.



Wed, 28 Mar 2018 05:19:15 GMT - Antoine Martin: status, milestone changed


Wed, 20 Mar 2019 05:06:15 GMT - Antoine Martin: milestone changed

Milestone renamed


Thu, 25 Apr 2019 08:30:12 GMT - Antoine Martin:

This would help with #2248.


Mon, 29 Apr 2019 13:58:44 GMT - Antoine Martin:

This is HARD. Not having to split lines allows us to take shortcuts and ensures we always get rectangles - which is important for splitting the window into regions. Splitting the line into 3 hashes doesn't just use 3 times more memory, it also complicates the code dramatically.


Sat, 21 Sep 2019 12:09:47 GMT - Antoine Martin: milestone changed


Sat, 23 Jan 2021 05:24:05 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1429