已合并
闪控球/窗更新时保留绑定属性 #19762
闪控球/窗更新时保留绑定属性 #19762
已合并
loumou创建于 7月23日
共 3 个文件变更+8-0
@@ -143,6 +143,10 @@ bool KeyboardSession::GetSkipFlagForCallingSession(const sptr<SceneSession>& cal
143 if (!callingSession) {143 if (!callingSession) {
144 return false;144 return false;
145 }145 }
146+ if (WindowHelper::IsFvWindow(callingSession->GetWindowType())) {
147+ TLOGI(WmsLogTag::WMS_KEYBOARD, "fv window use fv session flag");
148+ return callingSession->isSkipSelfWhenShowOnVirtualScreen_.load();
149+ }
146 auto mainSession = callingSession->GetMainSession();150 auto mainSession = callingSession->GetMainSession();
147 if (!mainSession) {151 if (!mainSession) {
148 return false;152 return false;
@@ -558,6 +558,7 @@ WMError FloatViewController::SetVisibilityInApp(bool visibleInApp)
558 option_.GetFvTemplateInfo(fvTemplateInfo);558 option_.GetFvTemplateInfo(fvTemplateInfo);
559 fvTemplateInfo.id_ = id_;559 fvTemplateInfo.id_ = id_;
560 fvTemplateInfo.isBind_ = bindState_;560 fvTemplateInfo.isBind_ = bindState_;
561+ fvTemplateInfo.bindWindowId_ = bindWindowId_;
561 errorCode = window_->UpdateFloatView(fvTemplateInfo);562 errorCode = window_->UpdateFloatView(fvTemplateInfo);
562 if (errorCode != WMError::WM_OK) {563 if (errorCode != WMError::WM_OK) {
563 TLOGE(WmsLogTag::WMS_SYSTEM, "Update float view failed when set visibility in app, err: %{public}u", errorCode);564 TLOGE(WmsLogTag::WMS_SYSTEM, "Update float view failed when set visibility in app, err: %{public}u", errorCode);
@@ -624,6 +625,7 @@ WMError FloatViewController::UpdateFloatView()
624 option_.GetFvTemplateInfo(fvTemplateInfo);625 option_.GetFvTemplateInfo(fvTemplateInfo);
625 fvTemplateInfo.id_ = id_;626 fvTemplateInfo.id_ = id_;
626 fvTemplateInfo.isBind_ = bindState_;627 fvTemplateInfo.isBind_ = bindState_;
628+ fvTemplateInfo.bindWindowId_ = bindWindowId_;
627 auto errCode = window_->UpdateFloatView(fvTemplateInfo);629 auto errCode = window_->UpdateFloatView(fvTemplateInfo);
628 if (errCode != WMError::WM_OK) {630 if (errCode != WMError::WM_OK) {
629 TLOGE(WmsLogTag::WMS_SYSTEM, "Update float view failed when change float view, err: %{public}u", errCode);631 TLOGE(WmsLogTag::WMS_SYSTEM, "Update float view failed when change float view, err: %{public}u", errCode);
@@ -143,6 +143,8 @@ WMError FloatingBallController::UpdateFloatingBall(sptr<FbOption>& option)
143 option->GetFbTemplateBaseInfo(fbTemplateBaseInfo);143 option->GetFbTemplateBaseInfo(fbTemplateBaseInfo);
144 fbTemplateBaseInfo.isVisibleInApp_ = visibleInApp_;144 fbTemplateBaseInfo.isVisibleInApp_ = visibleInApp_;
145 fbTemplateBaseInfo.id_ = id_;145 fbTemplateBaseInfo.id_ = id_;
146+ fbTemplateBaseInfo.isBind_ = bindState_;
147+ fbTemplateBaseInfo.bindWindowId_ = bindWindowId_;
146 auto errCode = window_->UpdateFloatingBall(fbTemplateBaseInfo, option->GetIcon());148 auto errCode = window_->UpdateFloatingBall(fbTemplateBaseInfo, option->GetIcon());
147 std::ostringstream ss;149 std::ostringstream ss;
148 errCode == WMError::WM_OK ? (ss << "") : (ss << "Update floating ball window session failed, errCode:"150 errCode == WMError::WM_OK ? (ss << "") : (ss << "Update floating ball window session failed, errCode:"