From 1f9492a009e88fbc09b0f2e6610d4869366aea85 Mon Sep 17 00:00:00 2001 From: huangzhuozhen Date: Wed, 30 Apr 2025 16:45:42 +0800 Subject: [PATCH] add inputmethodengine requestKeyboardReason fixed Signed-off-by: huangzhuozhen --- .../js_input_method_engine_setting.cpp | 19 +++++++++++++++++++ .../js_input_method_engine_setting.h | 1 + 2 files changed, 20 insertions(+) diff --git a/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.cpp b/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.cpp index 369c7d50e..d689785b6 100644 --- a/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.cpp +++ b/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.cpp @@ -85,6 +85,7 @@ napi_value JsInputMethodEngineSetting::Init(napi_env env, napi_value exports) DECLARE_NAPI_STATIC_PROPERTY("ExtendAction", GetJsExtendActionProperty(env)), DECLARE_NAPI_STATIC_PROPERTY("SecurityMode", GetJsSecurityModeProperty(env)), DECLARE_NAPI_STATIC_PROPERTY("ImmersiveMode", GetJsImmersiveModeProperty(env)), + DECLARE_NAPI_STATIC_PROPERTY("RequestKeyboardReason", GetJsRequestKeyboardReasonProperty(env)) }; NAPI_CALL( env, napi_define_properties(env, exports, sizeof(descriptor) / sizeof(napi_property_descriptor), descriptor)); @@ -219,6 +220,24 @@ napi_value JsInputMethodEngineSetting::GetJsImmersiveModeProperty(napi_env env) return ret ? immersive : JsUtil::Const::Null(env); } +napi_value JsInputMethodEngineSetting::GetJsRequestKeyboardReasonProperty(napi_env env) +{ + napi_value requestKeyboardReason = nullptr; + NAPI_CALL(env, napi_create_object(env, &requestKeyboardReason)); + bool ret = JsUtil::Object::WriteProperty( + env, requestKeyboardReason, "NONE", static_cast(RequestKeyboardReason::NONE)); + ret = ret && + JsUtil::Object::WriteProperty( + env, requestKeyboardReason, "MOUSE", static_cast(RequestKeyboardReason::MOUSE)); + ret = ret && + JsUtil::Object::WriteProperty( + env, requestKeyboardReason, "TOUCH", static_cast(RequestKeyboardReason::TOUCH)); + ret = ret && + JsUtil::Object::WriteProperty( + env, requestKeyboardReason, "OTHER", static_cast(RequestKeyboardReason::OTHER)); + return ret ? requestKeyboardReason : JsUtil::Const::Null(env); +} + std::shared_ptr JsInputMethodEngineSetting::GetInputMethodEngineSetting() { if (inputMethodEngine_ == nullptr) { diff --git a/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.h b/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.h index ee2efb61a..2214a2caa 100644 --- a/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.h +++ b/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.h @@ -49,6 +49,7 @@ public: static napi_value DestroyPanel(napi_env env, napi_callback_info info); static napi_value GetSecurityMode(napi_env env, napi_callback_info info); static napi_value GetJsImmersiveModeProperty(napi_env env); + static napi_value GetJsRequestKeyboardReasonProperty(napi_env env); void OnInputStart() override; void OnKeyboardStatus(bool isShow) override; int32_t OnInputStop() override; -- Gitee