Loading services/surfaceflinger/Layer.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -2382,6 +2382,16 @@ void Layer::fillInputFrameInfo(InputWindowInfo& info, const ui::Transform& toPhy info.touchableRegion = inputTransform.transform(info.touchableRegion); } void Layer::fillTouchOcclusionMode(InputWindowInfo& info) { sp<Layer> p = this; while (p != nullptr && !p->hasInputInfo()) { p = p->mDrawingParent.promote(); } if (p != nullptr) { info.touchOcclusionMode = p->mDrawingState.inputInfo.touchOcclusionMode; } } InputWindowInfo Layer::fillInputInfo(const sp<DisplayDevice>& display) { if (!hasInputInfo()) { mDrawingState.inputInfo.name = getName(); Loading Loading @@ -2419,6 +2429,7 @@ InputWindowInfo Layer::fillInputInfo(const sp<DisplayDevice>& display) { // anything. info.visible = hasInputInfo() ? canReceiveInput() : isVisible(); info.alpha = getAlpha(); fillTouchOcclusionMode(info); auto cropLayer = mDrawingState.touchableRegionCrop.promote(); if (info.replaceTouchableRegionWithCrop) { Loading services/surfaceflinger/Layer.h +4 −0 Original line number Diff line number Diff line Loading @@ -1057,6 +1057,10 @@ private: // null. sp<Layer> getRootLayer(); // Fills in the touch occlusion mode of the first parent (including this layer) that // hasInputInfo() or no-op if no such parent is found. void fillTouchOcclusionMode(InputWindowInfo& info); // Fills in the frame and transform info for the InputWindowInfo void fillInputFrameInfo(InputWindowInfo& info, const ui::Transform& toPhysicalDisplay); Loading Loading
services/surfaceflinger/Layer.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -2382,6 +2382,16 @@ void Layer::fillInputFrameInfo(InputWindowInfo& info, const ui::Transform& toPhy info.touchableRegion = inputTransform.transform(info.touchableRegion); } void Layer::fillTouchOcclusionMode(InputWindowInfo& info) { sp<Layer> p = this; while (p != nullptr && !p->hasInputInfo()) { p = p->mDrawingParent.promote(); } if (p != nullptr) { info.touchOcclusionMode = p->mDrawingState.inputInfo.touchOcclusionMode; } } InputWindowInfo Layer::fillInputInfo(const sp<DisplayDevice>& display) { if (!hasInputInfo()) { mDrawingState.inputInfo.name = getName(); Loading Loading @@ -2419,6 +2429,7 @@ InputWindowInfo Layer::fillInputInfo(const sp<DisplayDevice>& display) { // anything. info.visible = hasInputInfo() ? canReceiveInput() : isVisible(); info.alpha = getAlpha(); fillTouchOcclusionMode(info); auto cropLayer = mDrawingState.touchableRegionCrop.promote(); if (info.replaceTouchableRegionWithCrop) { Loading
services/surfaceflinger/Layer.h +4 −0 Original line number Diff line number Diff line Loading @@ -1057,6 +1057,10 @@ private: // null. sp<Layer> getRootLayer(); // Fills in the touch occlusion mode of the first parent (including this layer) that // hasInputInfo() or no-op if no such parent is found. void fillTouchOcclusionMode(InputWindowInfo& info); // Fills in the frame and transform info for the InputWindowInfo void fillInputFrameInfo(InputWindowInfo& info, const ui::Transform& toPhysicalDisplay); Loading