diff options
| author | 2025-03-10 09:51:09 -0700 | |
|---|---|---|
| committer | 2025-03-10 09:51:09 -0700 | |
| commit | c823c85cd37355afbf9622af0d740501f67d1a60 (patch) | |
| tree | dde0d37afc3335f646d0ee3cd08adf188c3536a9 /libs/input/PointerController.cpp | |
| parent | 4c049facd09c4cff6fdec9776cfb931144118870 (diff) | |
| parent | 648ca6e51d9611726da79c45b1e1920f409d573f (diff) | |
Merge "Merge 25Q1 (ab/BP1A.250305.020) to AOSP main" into main
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); } |