支持模态窗模整个应用进程意见修改2

Signed-off-by: 苏嵋岩 <sumeiyan@huawei.com>
This commit is contained in:
苏嵋岩 2024-09-26 22:07:13 +08:00
parent 1ddd39f2b6
commit f1f8f205b9
7 changed files with 17 additions and 22 deletions

View File

@ -1204,7 +1204,7 @@ struct SystemWindowOptions {
int32_t windowType = -1;
};
enum class ModalityType : uint32_t {
enum class ModalityType : uint8_t {
WINDOW_MODALITY,
APPLICATION_MODALITY,
};

View File

@ -903,10 +903,9 @@ napi_value JsExtensionWindow::OnCreateSubWindowWithOptions(napi_env env, napi_ca
extWindow->NotifyModalUIExtensionMayBeCovered(false);
}
task.Resolve(env, CreateJsWindowObject(env, window));
TLOGNI(WmsLogTag::WMS_UIEXT,
"%{public}s [NAPI]Create sub window %{public}s end",
TLOGNI(WmsLogTag::WMS_UIEXT, "%{public}s [NAPI]Create sub window %{public}s end",
where, windowName.c_str());
};
};
napi_value callback = (argv[2] != nullptr && GetType(env, argv[2]) == napi_function) ? argv[2] : nullptr;
napi_value result = nullptr;
NapiAsyncTask::Schedule("JsExtensionWindow::OnCreateSubWindowWithOptions",

View File

@ -5949,7 +5949,7 @@ napi_value JsWindow::OnSetSubWindowModal(napi_env env, napi_callback_info info)
return NapiThrowError(env, WmErrorCode::WM_ERROR_INVALID_PARAM);
}
ModalityType modalityType = ModalityType::WINDOW_MODALITY;
using T = std::underlying_type_t<ModalityType>;
using T = std::underlying_type_t<ApiModalityType>;
T type = 0;
if (argc == 2 && ConvertFromJsValue(env, argv[INDEX_ONE], type)) { // 2: the param num
if (!isModal) {
@ -5967,8 +5967,7 @@ napi_value JsWindow::OnSetSubWindowModal(napi_env env, napi_callback_info info)
const char* const where = __func__;
NapiAsyncTask::CompleteCallback complete =
[where, window = windowToken_, isModal, modalityType](napi_env env, NapiAsyncTask& task,
int32_t status) {
[where, window = windowToken_, isModal, modalityType](napi_env env, NapiAsyncTask& task, int32_t status) {
if (window == nullptr) {
TLOGNE(WmsLogTag::WMS_SUB, "%{public}s window is nullptr", where);
WmErrorCode wmErrorCode = WM_JS_TO_ERROR_CODE_MAP.at(WMError::WM_ERROR_NULLPTR);
@ -5976,11 +5975,10 @@ napi_value JsWindow::OnSetSubWindowModal(napi_env env, napi_callback_info info)
return;
}
if (!WindowHelper::IsSubWindow(window->GetType())) {
TLOGNE(WmsLogTag::WMS_SUB,
"%{public}s invalid call, type:%{public}d",
TLOGNE(WmsLogTag::WMS_SUB, "%{public}s invalid call, type:%{public}d",
where, window->GetType());
WmErrorCode wmErrorCode = WmErrorCode::WM_ERROR_INVALID_CALLING;
task.Reject(env, JsErrUtils::CreateJsError(env, wmErrorCode, "invalid window type."));
task.Reject(env, JsErrUtils::CreateJsError(env,
WmErrorCode::WM_ERROR_INVALID_CALLING, "invalid window type."));
return;
}
WMError ret = window->SetSubWindowModal(isModal, modalityType);
@ -5988,15 +5986,14 @@ napi_value JsWindow::OnSetSubWindowModal(napi_env env, napi_callback_info info)
task.Resolve(env, NapiGetUndefined(env));
} else {
WmErrorCode wmErrorCode = WM_JS_TO_ERROR_CODE_MAP.at(ret);
TLOGNE(WmsLogTag::WMS_SUB,
"%{public}s set failed, ret is %{public}d",
TLOGNE(WmsLogTag::WMS_SUB, "%{public}s set failed, ret is %{public}d",
where, wmErrorCode);
task.Reject(env, JsErrUtils::CreateJsError(env, wmErrorCode, "Set subwindow modal failed"));
}
TLOGNI(WmsLogTag::WMS_SUB,
"%{public}s id:%{public}u, name:%{public}s, isModal:%{public}d, modalityType:%{public}d",
"%{public}s id:%{public}u, name:%{public}s, isModal:%{public}d, modalityType:%{public}u",
where, window->GetWindowId(), window->GetWindowName().c_str(), isModal, modalityType);
};
};
napi_value lastParam = nullptr;
napi_value result = nullptr;
NapiAsyncTask::Schedule("JsWindow::SetSubWindowModal",
@ -6040,7 +6037,7 @@ napi_value JsWindow::OnSetWindowDecorHeight(napi_env env, napi_callback_info inf
WLOGFE("Set window decor height failed");
return NapiThrowError(env, ret);
}
WLOGI("Window [%{public}u, %{public}s] OnSetDecorHeight end, height = %{public}d",
WLOGI("Window [%{public}u, %{public}s] OnSetDecorHeight end, height = %{public}u",
windowToken_->GetWindowId(), windowToken_->GetWindowName().c_str(), height);
return NapiGetUndefined(env);
}

View File

@ -1100,7 +1100,7 @@ static bool ParseModalityParam(napi_env env, napi_value jsObject, const sptr<Win
}
windowOption->SetWindowTopmost(isTopmost);
}
using T = std::underlying_type_t<ModalityType>;
using T = std::underlying_type_t<ApiModalityType>;
T modalityType = 0;
if (ParseJsValue(jsObject, env, "modalityType", modalityType)) {
if (!isModal) {

View File

@ -669,10 +669,9 @@ napi_value JsWindowStage::OnCreateSubWindowWithOptions(napi_env env, napi_callba
return;
}
task.Resolve(env, CreateJsWindowObject(env, window));
TLOGNI(WmsLogTag::WMS_SUB,
"%{public}s [NAPI]Create sub window %{public}s end",
TLOGNI(WmsLogTag::WMS_SUB, "%{public}s [NAPI]Create sub window %{public}s end",
where, windowName.c_str());
};
};
napi_value callback = (argv[2] != nullptr && GetType(env, argv[2]) == napi_function) ? argv[2] : nullptr;
napi_value result = nullptr;
NapiAsyncTask::Schedule("JsWindowStage::OnCreateSubWindowWithOptions",

View File

@ -803,7 +803,7 @@ struct SystemWindowOptions {
int32_t windowType = -1;
};
enum class ModalityType : uint32_t {
enum class ModalityType : uint8_t {
WINDOW_MODALITY,
APPLICATION_MODALITY,
};

View File

@ -1,4 +1,4 @@
/*
/*
* Copyright (c) 2023 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.