diff options
| author | 2025-03-08 16:09:51 -0800 | |
|---|---|---|
| committer | 2025-03-08 16:09:51 -0800 | |
| commit | 648ca6e51d9611726da79c45b1e1920f409d573f (patch) | |
| tree | caabc3c169e3700cb6d9f4eedab099216693f4b2 /libs/input/PointerController.cpp | |
| parent | 05b45303b1c5fef18509e409c47a8674b81c84b2 (diff) | |
| parent | 4d65e1d62ba2c0d0ad50e756508ec799a44efd06 (diff) | |
Merge 25Q1 (ab/BP1A.250305.020) to AOSP main
Bug: 385190204
Merged-In: I04ad7e5905395350cb84f9a062d1ae0b325fdb28
Change-Id: I2186b603f2c4b83db047f9123f9615e00f6e6986
Diffstat (limited to 'libs/input/PointerController.cpp')
| -rw-r--r-- | libs/input/PointerController.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp index 78d7d3a7051b..0b81211ee666 100644 --- a/libs/input/PointerController.cpp +++ b/libs/input/PointerController.cpp @@ -138,15 +138,16 @@ std::mutex& PointerController::getLock() const { return mDisplayInfoListener->mLock; } -void PointerController::move(float deltaX, float deltaY) { +vec2 PointerController::move(float deltaX, float deltaY) { const ui::LogicalDisplayId displayId = mCursorController.getDisplayId(); - vec2 transformed; + ui::Transform transform; { std::scoped_lock lock(getLock()); - const auto& transform = getTransformForDisplayLocked(displayId); - transformed = transformWithoutTranslation(transform, {deltaX, deltaY}); + transform = getTransformForDisplayLocked(displayId); } - mCursorController.move(transformed.x, transformed.y); + + const vec2 transformed = transformWithoutTranslation(transform, {deltaX, deltaY}); + return transformWithoutTranslation(transform.inverse(), mCursorController.move(transformed)); } void PointerController::setPosition(float x, float y) { @@ -157,16 +158,15 @@ void PointerController::setPosition(float x, float y) { const auto& transform = getTransformForDisplayLocked(displayId); transformed = transform.transform(x, y); } - mCursorController.setPosition(transformed.x, transformed.y); + mCursorController.setPosition(transformed); } -FloatPoint PointerController::getPosition() const { +vec2 PointerController::getPosition() const { const ui::LogicalDisplayId displayId = mCursorController.getDisplayId(); const auto p = mCursorController.getPosition(); { std::scoped_lock lock(getLock()); - const auto& transform = getTransformForDisplayLocked(displayId); - return FloatPoint{transform.inverse().transform(p.x, p.y)}; + return getTransformForDisplayLocked(displayId).inverse().transform(p.x, p.y); } } @@ -295,6 +295,11 @@ void PointerController::clearSkipScreenshotFlags() { mCursorController.setSkipScreenshot(false); } +ui::Transform PointerController::getDisplayTransform() const { + std::scoped_lock lock(getLock()); + return getTransformForDisplayLocked(mLocked.pointerDisplayId); +} + void PointerController::doInactivityTimeout() { fade(Transition::GRADUAL); } |