Xpra: Ticket #2043: distinguish real damage events from refresh requests

At the moment, we only skip calls to damage() that are tagged as polling events by the gtk shadow server base class.

And this is only used:

Problem is that there are many other places where we can generate damage calls:


The damage events list is used for some heuristics, but clients may send many configure events (ie: when moving a window), which can completely skew the data we rely on.

Fri, 16 Nov 2018 15:56:45 GMT - Antoine Martin: status changed

r21014 skips recording damage events for shadow servers, but this is the wrong place and assumes that shadow servers don't get damage events - which is true for now, but this may change.

Fri, 16 Nov 2018 17:49:11 GMT - Antoine Martin:

There are also tricky issues with shadow servers and video region detection, see r21019 backport. Well hidden in there: we happen to avoid downscaling shadow screens as a very fortunate side effect!

For some things we want to know how many times we go through the damage function, for others we only care about real screen updates triggered by changes on screen. Shadow servers are a special case: we poll and trigger refreshes, but we still want to use video encoders, and for the full window area...

Mon, 19 Nov 2018 08:32:50 GMT - Antoine Martin:

This would help with #2044

Tue, 20 Nov 2018 12:11:59 GMT - Antoine Martin: status changed; resolution set

See also #2049.


Sat, 23 Jan 2021 05:40:37 GMT - migration script:

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