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

Commit c2335e4b authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Merge cherrypicks of [5727728, 5732523, 5729659, 5727729, 5724559] into qt-release

Change-Id: I4fc1c4c72892dc546af7f68f1adb5880ce4af8a2
parents c3aa441f 069560f6
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -289,8 +289,10 @@ static FloatRect reduce(const FloatRect& win, const Region& exclude) {
    return Region(Rect{win}).subtract(exclude).getBounds().toFloatRect();
}

Rect Layer::computeScreenBounds() const {
    FloatRect bounds = computeBounds();
Rect Layer::computeScreenBounds(bool reduceTransparentRegion) const {
    const State& s(getDrawingState());
    Region transparentRegion = reduceTransparentRegion ? getActiveTransparentRegion(s) : Region();
    FloatRect bounds = computeBounds(transparentRegion);
    ui::Transform t = getTransform();
    // Transform to screen space.
    bounds = t.transform(bounds);
@@ -2150,7 +2152,6 @@ InputWindowInfo Layer::fillInputInfo(const Rect& screenBounds) {
    // Position the touchable region relative to frame screen location and restrict it to frame
    // bounds.
    info.touchableRegion = info.touchableRegion.translate(info.frameLeft, info.frameTop);
    info.touchableRegion = info.touchableRegion.intersect(frame);
    info.visible = isVisible();
    return info;
}
+1 −1
Original line number Diff line number Diff line
@@ -616,7 +616,7 @@ public:
    ssize_t removeChild(const sp<Layer>& layer);
    sp<Layer> getParent() const { return mCurrentParent.promote(); }
    bool hasParent() const { return getParent() != nullptr; }
    Rect computeScreenBounds() const;
    Rect computeScreenBounds(bool reduceTransparentRegion = true) const;
    bool setChildLayer(const sp<Layer>& childLayer, int32_t z);
    bool setChildRelativeLayer(const sp<Layer>& childLayer,
            const sp<IBinder>& relativeToHandle, int32_t relativeZ);
+4 −1
Original line number Diff line number Diff line
@@ -2753,7 +2753,10 @@ void SurfaceFlinger::updateInputWindows() {

    mDrawingState.traverseInReverseZOrder([&](Layer* layer) {
        if (layer->hasInput()) {
            inputHandles.add(layer->fillInputInfo(layer->computeScreenBounds()));
            // When calculating the screen bounds we ignore the transparent region since it may
            // result in an unwanted offset.
            inputHandles.add(layer->fillInputInfo(
                    layer->computeScreenBounds(false /* reduceTransparentRegion */)));
        }
    });
    mInputFlinger->setInputWindows(inputHandles);