diff options
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 80b4d75fb1..a10a8138e3 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -2251,9 +2251,12 @@ uint32_t SurfaceFlinger::setClientStateLocked( sp<Layer> layer(client->getLayerUser(s.surface)); if (layer != 0) { const uint32_t what = s.what; + bool positionAppliesWithResize = + what & layer_state_t::ePositionAppliesWithResize; if (what & layer_state_t::ePositionChanged) { - if (layer->setPosition(s.x, s.y)) + if (layer->setPosition(s.x, s.y, !positionAppliesWithResize)) { flags |= eTraversalNeeded; + } } if (what & layer_state_t::eLayerChanged) { // NOTE: index needs to be calculated before we update the state |