On 24/04/2018 13:22, Anton Tarasov wrote:
Clarification. The coordinate should not actually be split into displays every time it's scaled up/down. It's enough to calculate its offset in the "terminal" display and scale it accordingly. Then have all the displays already mapped b/w device and user spaces. But the problem is right here. Even in the current implementation, when there are two displays with different scales, their bounds are converted to the user space incorrectly. The conversion is straight-forward - scaleDown(x,y), ScaleDown(w/h). However, in order to keep the layout of the displays in the user space, the origin of a display should be scaled by the scale factor of the adjacent display, not its own.
I remember that we tried to implement it this way, or even implemented it this way, but changed later. The problem in situation above is occurred if there are a few screens on the left side with different scales and it is unclear which one should be used to scale the x,y of the right screen. Situation became worse if there are some holes between screens, or screens are intersected.
-- Best regards, Sergey.
