diff options
author | 2025-02-27 15:39:31 -0800 | |
---|---|---|
committer | 2025-02-27 15:39:31 -0800 | |
commit | 82ada6503a81af7eeed2924a2d2d942375f6c8c2 (patch) | |
tree | feb014d10d6fe761610bafd23ed382f0c78084ac /libs/input/PointerController.cpp | |
parent | 2b327ef435fd5d687fd5a65c2ee263ba0ebea5ce (diff) | |
parent | 450f8ab14dfecc9a5061d30c8e3d6864cc21fb9b (diff) |
Merge 25Q1 (ab/12770256) to aosp-main-future
Bug: 385190204
Merged-In: Ibc80f09d54bec2c83814874d94a8f8eb22b5075f
Change-Id: If7779ae57fd91631d08bd8af5434c2ddd963aad7
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); } |