mirror of
https://gitee.com/openharmony/window_window_manager
synced 2024-10-07 04:03:37 +00:00
支持模态窗模整个应用进程意见修改2
Signed-off-by: 苏嵋岩 <sumeiyan@huawei.com>
This commit is contained in:
parent
1ddd39f2b6
commit
f1f8f205b9
@ -1204,7 +1204,7 @@ struct SystemWindowOptions {
|
||||
int32_t windowType = -1;
|
||||
};
|
||||
|
||||
enum class ModalityType : uint32_t {
|
||||
enum class ModalityType : uint8_t {
|
||||
WINDOW_MODALITY,
|
||||
APPLICATION_MODALITY,
|
||||
};
|
||||
|
@ -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",
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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",
|
||||
|
@ -803,7 +803,7 @@ struct SystemWindowOptions {
|
||||
int32_t windowType = -1;
|
||||
};
|
||||
|
||||
enum class ModalityType : uint32_t {
|
||||
enum class ModalityType : uint8_t {
|
||||
WINDOW_MODALITY,
|
||||
APPLICATION_MODALITY,
|
||||
};
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user