diff options
-rw-r--r-- | libs/input/PointerController.cpp | 4 | ||||
-rw-r--r-- | libs/input/PointerController.h | 3 | ||||
-rw-r--r-- | services/core/jni/com_android_server_input_InputManagerService.cpp | 11 |
3 files changed, 12 insertions, 6 deletions
diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp index 0f86bc614b2b..4a1d7e7b5c64 100644 --- a/libs/input/PointerController.cpp +++ b/libs/input/PointerController.cpp @@ -78,7 +78,7 @@ PointerController::PointerController(const sp<PointerControllerPolicyInterface>& mLocked.pointerAlpha = 0.0f; // pointer is initially faded mLocked.pointerSprite = mSpriteController->createSprite(); mLocked.pointerIconChanged = false; - mLocked.requestedPointerShape = 0; + mLocked.requestedPointerShape = mPolicy->getDefaultPointerIconId(); mLocked.buttonState = 0; @@ -512,7 +512,7 @@ void PointerController::updatePointerLocked() { if (mLocked.pointerIconChanged || mLocked.presentationChanged) { if (mLocked.presentation == PRESENTATION_POINTER) { - if (mLocked.requestedPointerShape == 0) { + if (mLocked.requestedPointerShape == mPolicy->getDefaultPointerIconId()) { mLocked.pointerSprite->setIcon(mLocked.pointerIcon); } else { std::map<int, SpriteIcon>::const_iterator iter = diff --git a/libs/input/PointerController.h b/libs/input/PointerController.h index 308ff1242064..24a16819384e 100644 --- a/libs/input/PointerController.h +++ b/libs/input/PointerController.h @@ -58,7 +58,8 @@ protected: public: virtual void loadPointerResources(PointerResources* outResources) = 0; - virtual void loadAdditionalMouseResources(std::map<int, SpriteIcon>* outResources) = 0; + virtual void loadAdditionalMouseResources(std::map<int32_t, SpriteIcon>* outResources) = 0; + virtual int32_t getDefaultPointerIconId() = 0; }; diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp index 8cb0a1310ec5..be190cbef47d 100644 --- a/services/core/jni/com_android_server_input_InputManagerService.cpp +++ b/services/core/jni/com_android_server_input_InputManagerService.cpp @@ -238,7 +238,8 @@ public: /* --- PointerControllerPolicyInterface implementation --- */ virtual void loadPointerResources(PointerResources* outResources); - virtual void loadAdditionalMouseResources(std::map<int, SpriteIcon>* outResources); + virtual void loadAdditionalMouseResources(std::map<int32_t, SpriteIcon>* outResources); + virtual int32_t getDefaultPointerIconId(); private: sp<InputManager> mInputManager; @@ -786,7 +787,7 @@ void NativeInputManager::setPointerIconShape(int32_t iconId) { sp<PointerController> controller = mLocked.pointerController.promote(); if (controller != NULL) { // Use 0 (the default icon) for ARROW. - controller->updatePointerShape((iconId == POINTER_ICON_STYLE_ARROW) ? 0 : iconId); + controller->updatePointerShape(iconId); } } @@ -1040,15 +1041,19 @@ void NativeInputManager::loadPointerResources(PointerResources* outResources) { &outResources->spotAnchor); } -void NativeInputManager::loadAdditionalMouseResources(std::map<int, SpriteIcon>* outResources) { +void NativeInputManager::loadAdditionalMouseResources(std::map<int32_t, SpriteIcon>* outResources) { JNIEnv* env = jniEnv(); for (int iconId = POINTER_ICON_STYLE_CONTEXT_MENU; iconId <= POINTER_ICON_STYLE_GRABBING; ++iconId) { loadSystemIconAsSprite(env, mContextObj, iconId, &((*outResources)[iconId])); } + loadSystemIconAsSprite(env, mContextObj, POINTER_ICON_STYLE_NULL, &((*outResources)[POINTER_ICON_STYLE_NULL])); } +int32_t NativeInputManager::getDefaultPointerIconId() { + return POINTER_ICON_STYLE_ARROW; +} // ---------------------------------------------------------------------------- |