Set Change::Metadata on LayerMetadata update
Currently, on layer_state_t::eMetadataChanged, only
Change::GameMode is set. Hence, for other metadata changes
such as METADATA_OWNER_UID, METADATA_MOUSE_CURSOR,
etc. (used by ARC++), these doesn't get propagated until
`forceUpdate=true` or `gameMode` is updated.
This leaves ARC++ LayerFE receiving stale metadata, even
though "update" was received.
Bug: 339382668
Test: atest libsurfaceflinger_unittests
Change-Id: I8130c3505b9808a9aa04d1641dc1c22352d6bf87
diff --git a/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp b/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp
index 028bd19..5631fac 100644
--- a/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp
+++ b/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp
@@ -328,6 +328,7 @@
changes |= RequestedLayerState::Changes::GameMode;
}
}
+ changes |= RequestedLayerState::Changes::Metadata;
}
if (clientState.what & layer_state_t::eFrameRateChanged) {
const auto compatibility =