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

Commit 2a0066da authored by Ady Abraham's avatar Ady Abraham
Browse files

SF: return the active display from getInternalDisplayId

So clients that uses SurfaceComposerClient::getInternalDisplayId
such as screenrecord would get the current active display

Test: screenrecord
Bug: 193821864
Bug: 199336728
Change-Id: Ief856c736c78ab9ddca3c4ffccd8e374c050b0bd
parent c2d756df
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -619,12 +619,18 @@ void SurfaceFlinger::releaseVirtualDisplay(VirtualDisplayId displayId) {
std::vector<PhysicalDisplayId> SurfaceFlinger::getPhysicalDisplayIdsLocked() const {
    std::vector<PhysicalDisplayId> displayIds;
    displayIds.reserve(mPhysicalDisplayTokens.size());
    const auto defaultDisplayId = [this]() REQUIRES(mStateLock) {
        if (const auto display = getDefaultDisplayDeviceLocked()) {
            return display->getPhysicalId();
        }

    const auto internalDisplayId = getInternalDisplayIdLocked();
    displayIds.push_back(internalDisplayId);
        // fallback to the internal display id if the active display is unknown
        return getInternalDisplayIdLocked();
    }();
    displayIds.push_back(defaultDisplayId);

    for (const auto& [id, token] : mPhysicalDisplayTokens) {
        if (id != internalDisplayId) {
        if (id != defaultDisplayId) {
            displayIds.push_back(id);
        }
    }