mirror of
https://github.com/openharmony/windowmanager.git
synced 2026-07-19 17:08:11 -04:00
!1293 UpdateProperty接口整改,默认同步
Merge pull request !1293 from liuqi/lq_0802
This commit is contained in:
@@ -97,7 +97,8 @@ public:
|
||||
void MinimizeAllAppWindows(DisplayId displayId) override;
|
||||
WMError ToggleShownStateForAllAppWindows() override;
|
||||
WMError SetWindowLayoutMode(WindowLayoutMode mode) override;
|
||||
WMError UpdateProperty(sptr<WindowProperty>& windowProperty, PropertyChangeAction action) override;
|
||||
WMError UpdateProperty(sptr<WindowProperty>& windowProperty, PropertyChangeAction action,
|
||||
bool isAsyncTask = false) override;
|
||||
WMError GetAccessibilityWindowInfo(sptr<AccessibilityWindowInfo>& windowInfo) override;
|
||||
|
||||
void RegisterWindowManagerAgent(WindowManagerAgentType type,
|
||||
|
||||
@@ -78,7 +78,8 @@ public:
|
||||
virtual void MinimizeAllAppWindows(DisplayId displayId) = 0;
|
||||
virtual WMError ToggleShownStateForAllAppWindows() = 0;
|
||||
virtual WMError SetWindowLayoutMode(WindowLayoutMode mode) = 0;
|
||||
virtual WMError UpdateProperty(sptr<WindowProperty>& windowProperty, PropertyChangeAction action) = 0;
|
||||
virtual WMError UpdateProperty(sptr<WindowProperty>& windowProperty, PropertyChangeAction action,
|
||||
bool isAsyncTask = false) = 0;
|
||||
virtual void RegisterWindowManagerAgent(WindowManagerAgentType type,
|
||||
const sptr<IWindowManagerAgent>& windowManagerAgent) = 0;
|
||||
virtual void UnregisterWindowManagerAgent(WindowManagerAgentType type,
|
||||
|
||||
@@ -44,8 +44,8 @@ public:
|
||||
void MinimizeAllAppWindows(DisplayId displayId) override;
|
||||
WMError ToggleShownStateForAllAppWindows() override;
|
||||
WMError SetWindowLayoutMode(WindowLayoutMode mode) override;
|
||||
WMError UpdateProperty(sptr<WindowProperty>& windowProperty, PropertyChangeAction action) override;
|
||||
|
||||
WMError UpdateProperty(sptr<WindowProperty>& windowProperty, PropertyChangeAction action,
|
||||
bool isAsyncTask = false) override;
|
||||
void RegisterWindowManagerAgent(WindowManagerAgentType type,
|
||||
const sptr<IWindowManagerAgent>& windowManagerAgent) override;
|
||||
void UnregisterWindowManagerAgent(WindowManagerAgentType type,
|
||||
|
||||
@@ -329,7 +329,7 @@ void MoveDragController::HandleDragEvent(int32_t posX, int32_t posY, int32_t poi
|
||||
windowProperty_->SetRequestRect(newRect);
|
||||
windowProperty_->SetWindowSizeChangeReason(WindowSizeChangeReason::DRAG);
|
||||
windowProperty_->SetDragType(moveDragProperty_->dragType_);
|
||||
WindowManagerService::GetInstance().UpdateProperty(windowProperty_, PropertyChangeAction::ACTION_UPDATE_RECT);
|
||||
WindowManagerService::GetInstance().UpdateProperty(windowProperty_, PropertyChangeAction::ACTION_UPDATE_RECT, true);
|
||||
}
|
||||
|
||||
void MoveDragController::HandleMoveEvent(int32_t posX, int32_t posY, int32_t pointId)
|
||||
@@ -349,7 +349,7 @@ void MoveDragController::HandleMoveEvent(int32_t posX, int32_t posY, int32_t poi
|
||||
windowProperty_->GetWindowId(), newRect.posX_, newRect.posY_, newRect.width_, newRect.height_);
|
||||
windowProperty_->SetRequestRect(newRect);
|
||||
windowProperty_->SetWindowSizeChangeReason(WindowSizeChangeReason::MOVE);
|
||||
WindowManagerService::GetInstance().UpdateProperty(windowProperty_, PropertyChangeAction::ACTION_UPDATE_RECT);
|
||||
WindowManagerService::GetInstance().UpdateProperty(windowProperty_, PropertyChangeAction::ACTION_UPDATE_RECT, true);
|
||||
}
|
||||
|
||||
void MoveDragController::HandlePointerEvent(const std::shared_ptr<MMI::PointerEvent>& pointerEvent)
|
||||
|
||||
@@ -949,7 +949,7 @@ WMError WindowController::UpdateProperty(sptr<WindowProperty>& property, Propert
|
||||
case PropertyChangeAction::ACTION_UPDATE_TOUCH_HOT_AREA: {
|
||||
std::vector<Rect> rects;
|
||||
property->GetTouchHotAreas(rects);
|
||||
UpdateTouchHotAreas(node, rects);
|
||||
ret = UpdateTouchHotAreas(node, rects);
|
||||
break;
|
||||
}
|
||||
case PropertyChangeAction::ACTION_UPDATE_ANIMATION_FLAG: {
|
||||
|
||||
@@ -787,27 +787,42 @@ WMError WindowManagerService::SetWindowLayoutMode(WindowLayoutMode mode)
|
||||
});
|
||||
}
|
||||
|
||||
WMError WindowManagerService::UpdateProperty(sptr<WindowProperty>& windowProperty, PropertyChangeAction action)
|
||||
WMError WindowManagerService::UpdateProperty(sptr<WindowProperty>& windowProperty, PropertyChangeAction action,
|
||||
bool isAsyncTask)
|
||||
{
|
||||
if (windowProperty == nullptr) {
|
||||
WLOGFE("windowProperty is nullptr");
|
||||
return WMError::WM_ERROR_NULLPTR;
|
||||
}
|
||||
|
||||
if (action == PropertyChangeAction::ACTION_UPDATE_TRANSFORM_PROPERTY) {
|
||||
PostAsyncTask([this, windowProperty, action]() mutable {
|
||||
windowController_->UpdateProperty(windowProperty, action);
|
||||
});
|
||||
return WMError::WM_OK;
|
||||
}
|
||||
PostAsyncTask([this, windowProperty, action]() mutable {
|
||||
|
||||
if (isAsyncTask) {
|
||||
PostAsyncTask([this, windowProperty, action]() mutable {
|
||||
HITRACE_METER_FMT(HITRACE_TAG_WINDOW_MANAGER, "wms:UpdateProperty");
|
||||
WMError res = windowController_->UpdateProperty(windowProperty, action);
|
||||
if (action == PropertyChangeAction::ACTION_UPDATE_RECT && res == WMError::WM_OK &&
|
||||
windowProperty->GetWindowSizeChangeReason() == WindowSizeChangeReason::MOVE) {
|
||||
dragController_->UpdateDragInfo(windowProperty->GetWindowId());
|
||||
}
|
||||
});
|
||||
return WMError::WM_OK;
|
||||
}
|
||||
|
||||
return PostSyncTask([this, &windowProperty, action]() {
|
||||
HITRACE_METER_FMT(HITRACE_TAG_WINDOW_MANAGER, "wms:UpdateProperty");
|
||||
WMError res = windowController_->UpdateProperty(windowProperty, action);
|
||||
if (action == PropertyChangeAction::ACTION_UPDATE_RECT && res == WMError::WM_OK &&
|
||||
windowProperty->GetWindowSizeChangeReason() == WindowSizeChangeReason::MOVE) {
|
||||
dragController_->UpdateDragInfo(windowProperty->GetWindowId());
|
||||
}
|
||||
return res;
|
||||
});
|
||||
return WMError::WM_OK;
|
||||
}
|
||||
|
||||
WMError WindowManagerService::GetAccessibilityWindowInfo(sptr<AccessibilityWindowInfo>& windowInfo)
|
||||
|
||||
@@ -390,7 +390,8 @@ WMError WindowManagerProxy::SetWindowLayoutMode(WindowLayoutMode mode)
|
||||
return static_cast<WMError>(ret);
|
||||
}
|
||||
|
||||
WMError WindowManagerProxy::UpdateProperty(sptr<WindowProperty>& windowProperty, PropertyChangeAction action)
|
||||
WMError WindowManagerProxy::UpdateProperty(sptr<WindowProperty>& windowProperty, PropertyChangeAction action,
|
||||
bool isAsyncTask)
|
||||
{
|
||||
MessageParcel data;
|
||||
MessageParcel reply;
|
||||
|
||||
Reference in New Issue
Block a user