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

Commit 0aed7e97 authored by Mathias Agopian's avatar Mathias Agopian
Browse files

fix [1947273] the DimLayer causes the whole screen to update during transactions

parent 8c9687ae
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -725,10 +725,11 @@ void SurfaceFlinger::computeVisibleRegions(
            dirty.orSelf(layer->visibleRegionScreen);
            layer->contentDirty = false;
        } else {
            // compute the exposed region
            // dirty = what's visible now - what's wasn't covered before
            //       = what's visible now & what's was covered before
            dirty = visibleRegion.intersect(layer->coveredRegionScreen);            
            /* compute the exposed region:
             *    exposed = what's VISIBLE and NOT COVERED now 
             *    but was COVERED before
             */
            dirty = (visibleRegion - coveredRegion) & layer->coveredRegionScreen;
        }
        dirty.subtractSelf(aboveOpaqueLayers);

@@ -737,7 +738,7 @@ void SurfaceFlinger::computeVisibleRegions(

        // Update aboveOpaqueLayers/aboveCoveredLayers for next (lower) layer
        aboveOpaqueLayers.orSelf(opaqueRegion);
        aboveCoveredLayers.orSelf(bounds);
        aboveCoveredLayers.orSelf(visibleRegion);
        
        // Store the visible region is screen space
        layer->setVisibleRegion(visibleRegion);