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

Commit 817f6063 authored by Prabir Pradhan's avatar Prabir Pradhan
Browse files

Write displayOrientation value when WindowInfo is parceled

The expected displayOrientation value was not being sent to other
processes in WindowInfo because it was not being parceled/unparceled.

Here, we ensure that the displayOrientation value is correctly parceled.

Bug: 179274888
Test: adb shell dumpsys input
Change-Id: Ic3e72a6ec45ffa0bd3a5b407389fccd7a5f036a6
parent f334812d
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -54,8 +54,8 @@ bool WindowInfo::operator==(const WindowInfo& info) const {
            info.frameLeft == frameLeft && info.frameTop == frameTop &&
            info.frameRight == frameRight && info.frameBottom == frameBottom &&
            info.surfaceInset == surfaceInset && info.globalScaleFactor == globalScaleFactor &&
            info.transform == transform && info.displayWidth == displayWidth &&
            info.displayHeight == displayHeight &&
            info.transform == transform && info.displayOrientation == displayOrientation &&
            info.displayWidth == displayWidth && info.displayHeight == displayHeight &&
            info.touchableRegion.hasSameRects(touchableRegion) && info.visible == visible &&
            info.trustedOverlay == trustedOverlay && info.focusable == focusable &&
            info.touchOcclusionMode == touchOcclusionMode && info.hasWallpaper == hasWallpaper &&
@@ -97,6 +97,7 @@ status_t WindowInfo::writeToParcel(android::Parcel* parcel) const {
        parcel->writeFloat(transform.dtdy()) ?:
        parcel->writeFloat(transform.dsdy()) ?:
        parcel->writeFloat(transform.ty()) ?:
        parcel->writeUint32(displayOrientation) ?:
        parcel->writeInt32(displayWidth) ?:
        parcel->writeInt32(displayHeight) ?:
        parcel->writeBool(visible) ?:
@@ -154,6 +155,7 @@ status_t WindowInfo::readFromParcel(const android::Parcel* parcel) {
        parcel->readFloat(&dtdy) ?:
        parcel->readFloat(&dsdy) ?:
        parcel->readFloat(&ty) ?:
        parcel->readUint32(&displayOrientation) ?:
        parcel->readInt32(&displayWidth) ?:
        parcel->readInt32(&displayHeight) ?:
        parcel->readBool(&visible) ?:
+1 −1
Original line number Diff line number Diff line
@@ -168,7 +168,7 @@ struct WindowInfo : public Parcelable {
    // Transform applied to individual windows.
    ui::Transform transform;

    // Display orientation. Used for compatibility raw coordinates.
    // Display orientation as ui::Transform::RotationFlags. Used for compatibility raw coordinates.
    uint32_t displayOrientation = ui::Transform::ROT_0;

    // Display size in its natural rotation. Used to rotate raw coordinates for compatibility.
+3 −2
Original line number Diff line number Diff line
@@ -5049,12 +5049,13 @@ void InputDispatcher::dumpDispatchStateLocked(std::string& dump) {
                                         windowInfo->inputFeatures.string().c_str());
                    dump += StringPrintf(", ownerPid=%d, ownerUid=%d, dispatchingTimeout=%" PRId64
                                         "ms, trustedOverlay=%s, hasToken=%s, "
                                         "touchOcclusionMode=%s\n",
                                         "touchOcclusionMode=%s, displayOrientation=%d\n",
                                         windowInfo->ownerPid, windowInfo->ownerUid,
                                         millis(windowInfo->dispatchingTimeout),
                                         toString(windowInfo->trustedOverlay),
                                         toString(windowInfo->token != nullptr),
                                         toString(windowInfo->touchOcclusionMode).c_str());
                                         toString(windowInfo->touchOcclusionMode).c_str(),
                                         windowInfo->displayOrientation);
                    windowInfo->transform.dump(dump, "transform", INDENT4);
                }
            } else {