diff options
Diffstat (limited to 'libs/input/PointerController.cpp')
| -rw-r--r-- | libs/input/PointerController.cpp | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp index 576ebc1579ef..65e16056c106 100644 --- a/libs/input/PointerController.cpp +++ b/libs/input/PointerController.cpp @@ -74,6 +74,14 @@ std::shared_ptr<PointerController> PointerController::create( controller = std::shared_ptr<PointerController>( new MousePointerController(policy, looper, spriteController, enabled)); break; + case ControllerType::TOUCH: + 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>( @@ -167,8 +175,7 @@ void PointerController::setPosition(float x, float y) { FloatPoint PointerController::getPosition() const { if (!mEnabled) { - return FloatPoint{AMOTION_EVENT_INVALID_CURSOR_POSITION, - AMOTION_EVENT_INVALID_CURSOR_POSITION}; + return FloatPoint{0, 0}; } const int32_t displayId = mCursorController.getDisplayId(); @@ -397,4 +404,34 @@ MousePointerController::MousePointerController(const sp<PointerControllerPolicyI PointerController::setPresentation(Presentation::POINTER); } +MousePointerController::~MousePointerController() { + MousePointerController::fade(Transition::IMMEDIATE); +} + +// --- TouchPointerController --- + +TouchPointerController::TouchPointerController(const sp<PointerControllerPolicyInterface>& policy, + const sp<Looper>& looper, + SpriteController& spriteController, bool enabled) + : PointerController(policy, looper, spriteController, enabled) { + PointerController::setPresentation(Presentation::SPOT); +} + +TouchPointerController::~TouchPointerController() { + TouchPointerController::clearSpots(); +} + +// --- 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); +} + +StylusPointerController::~StylusPointerController() { + StylusPointerController::fade(Transition::IMMEDIATE); +} + } // namespace android |