diff options
author | 2018-06-01 12:16:09 +0000 | |
---|---|---|
committer | 2018-06-01 12:16:09 +0000 | |
commit | 70522fe55cdba436e3f8db2b8b049c9a8b02fe3c (patch) | |
tree | c251d22dee98ad754a9ef65075edca1cf3b3eee7 /services/surfaceflinger/SurfaceFlinger.cpp | |
parent | 1572f9b60ed2bedc16c2a534da9f8cb7cc512524 (diff) | |
parent | dba3273a27fb90f19a73abe7142790ad21387484 (diff) |
Merge "Push existing pending state when deferring transaction" into pi-dev
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index e66d14e269..97edd357ed 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -3345,6 +3345,13 @@ uint32_t SurfaceFlinger::setClientStateLocked(const ComposerState& composerState const uint32_t what = s.what; bool geometryAppliesWithResize = what & layer_state_t::eGeometryAppliesWithResize; + + // If we are deferring transaction, make sure to push the pending state, as otherwise the + // pending state will also be deferred. + if (what & layer_state_t::eDeferTransaction) { + layer->pushPendingState(); + } + if (what & layer_state_t::ePositionChanged) { if (layer->setPosition(s.x, s.y, !geometryAppliesWithResize)) { flags |= eTraversalNeeded; |