summaryrefslogtreecommitdiff
path: root/libs/input/PointerController.cpp
diff options
context:
space:
mode:
author Byoungho Jung <bh.jung@samsung.corp-partner.google.com> 2023-10-27 20:55:18 +0900
committer Prabir Pradhan <prabirmsp@google.com> 2023-11-08 20:29:33 +0000
commit08daa25989491352b08ee10a33fae530b3bed12e (patch)
tree0e6242871593a01e1f473cbab9d48375514b7b8e /libs/input/PointerController.cpp
parent51282e866164abcd81049e7837a44111c4ae5807 (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.cpp13
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