Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c5953904 authored by Mathias Agopian's avatar Mathias Agopian
Browse files

fix an orientation change drawing artifact.

a wrong orientation would be briefly shown when
rotation the screen. this happened when the window manager
set a custom transformation and the h/w composer was used.

the custom transformation was applied twice in that case.

Bug: 5037522
Change-Id: Ic1f87b63cd843f4475e4265d1624463825d775c4
parent f83b060b
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -191,14 +191,13 @@ void Layer::setGeometry(hwc_layer_t* hwcl)
     * 1) buffer orientation/flip/mirror
     * 2) state transformation (window manager)
     * 3) layer orientation (screen orientation)
     * mOrientation is already the composition of (2) and (3)
     * (NOTE: the matrices are multiplied in reverse order)
     */

    const Transform bufferOrientation(mCurrentTransform);
    const Transform& stateTransform(s.transform);
    const Transform layerOrientation(mOrientation);

    const Transform tr(layerOrientation * stateTransform * bufferOrientation);
    const Transform tr(layerOrientation * bufferOrientation);

    // this gives us only the "orientation" component of the transform
    const uint32_t finalTransform = tr.getOrientation();