diff options
| author | 2023-10-27 20:55:18 +0900 | |
|---|---|---|
| committer | 2023-11-08 20:29:33 +0000 | |
| commit | 08daa25989491352b08ee10a33fae530b3bed12e (patch) | |
| tree | 0e6242871593a01e1f473cbab9d48375514b7b8e /libs/input/PointerController.cpp | |
| parent | 51282e866164abcd81049e7837a44111c4ae5807 (diff) | |
Pointer icon refactor for stylus (base)
When PointerChoreographer is enabled, PointerChoreographer can
create multiple StylusPointerControllers for each stylus device.
A StylusPointerController is created when the corresponding stylus
sends the first hover event. It can show and hide a hover pointer
on the associated display.
Test: atest libinputservice_test
Bug: 293587049
Change-Id: I208f09f0e0f73a6396d60f5b2bd0242dddd3c66b
Diffstat (limited to 'libs/input/PointerController.cpp')
| -rw-r--r-- | libs/input/PointerController.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp index 246db6c64c7f..972e16841f49 100644 --- a/libs/input/PointerController.cpp +++ b/libs/input/PointerController.cpp @@ -78,6 +78,10 @@ std::shared_ptr<PointerController> PointerController::create( controller = std::shared_ptr<PointerController>( new TouchPointerController(policy, looper, spriteController, enabled)); break; + case ControllerType::STYLUS: + controller = std::shared_ptr<PointerController>( + new StylusPointerController(policy, looper, spriteController, enabled)); + break; case ControllerType::LEGACY: default: controller = std::shared_ptr<PointerController>( @@ -410,4 +414,13 @@ TouchPointerController::TouchPointerController(const sp<PointerControllerPolicyI PointerController::setPresentation(Presentation::SPOT); } +// --- StylusPointerController --- + +StylusPointerController::StylusPointerController(const sp<PointerControllerPolicyInterface>& policy, + const sp<Looper>& looper, + SpriteController& spriteController, bool enabled) + : PointerController(policy, looper, spriteController, enabled) { + PointerController::setPresentation(Presentation::STYLUS_HOVER); +} + } // namespace android |