Skip to content

wayland-surface: Fix get_absolute_coordinates() returning incorrect values during transitions

Currently, we blindly apply the transformation matrices of all parent actors when calculating the absolute coordinates. This means if this function is called while the window actor containing the surface is in the middle of a transition (e.g. window open animation), it may return incorrect values. As this function is used for calculating pointer confinement bounds for a specific surface, this will result in incorrect bounds value being used if pointer constraints are applied by the application at the same time the window is created and the mouse is inside the surface's bounds when it's created.

Fix this by only applying transformation matrices up to the window actor of the surface and then calculating the absolute coordinates by adding the position of the window actor.

Merge request reports