}
else
{
- r = UpdateBoundsOfVisualElement(fbounds);
+ bool isAdjustPosition = false;
+
+ _Window* pWindow = dynamic_cast<_Window*>(this);
+ _Window* pRootWindow = null;
+ if (pWindow)
+ {
+ _WindowType winType = pWindow->GetWindowType();
+ if (winType == _WINDOW_TYPE_VE)
+ {
+ _Control* pOwner = pWindow->GetOwner();
+ if (pOwner)
+ {
+ pRootWindow = pOwner->GetRootWindow();
+ if (pRootWindow)
+ {
+ isAdjustPosition = true;
+ }
+ }
+ }
+ }
+
+ if (isAdjustPosition == true)
+ {
+ FloatPoint ownerPosition = pRootWindow->GetPositionF();
+ r = UpdateBoundsOfVisualElement(FloatRectangle(fbounds.x - ownerPosition.x, fbounds.y - ownerPosition.y, fbounds.width, fbounds.height));
+ }
+ else
+ {
+ r = UpdateBoundsOfVisualElement(fbounds);
+ }
}
}