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.
This would help with #2248.
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.
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1429