Skip to content

effects/overview: Make ExpoLayout agnostic about coordinates space where natural geometry is

Currently, the ExpoLayout wants the natural geometry to be in the local coordinate space because of the default layout mode.

With the natural layout, the ExpoLayout will run a simple loop that repels overlapping cells.

Once no two items overlap, the items will be scaled down based on their bounding rectangle and the target area.

The problem is that the ExpoLayout includes the area where items will be eventually placed when computing the bounding rectangle, which can result in a sort of a bug where almost all windows are shifted to one side of the screen, which is not at 0,0.

This change removes the target area from the bounding rect math so the coordinate space where natural geometry is specified is irrelevant.

It fixes the issue where windows can be shifted to one side of the screen after adding or removing a window. It also makes the ExpoLayout API more simpler on the QML side and ensures that no relayouting will be performed if only the position of the WindowHeap changes.

Merge request reports