// Request rotation to window manager -> async -> Update VEs
// Window(not rotation) -> sync -> UpdateVEs
+ SysLog(NID_UI, "[Window Manager Rotation] <<<<<<<<<< Update : START >>>>>>>>>>");
+
_ControlImplManager* pImplManager = _ControlImplManager::GetInstance();
SysAssert(pImplManager);
__draw = draw;
// }
+
+ SysLog(NID_UI, "[Window Manager Rotation] <<<<<<<<<< Update : END >>>>>>>>>>");
#else
_ControlImplManager* pImplManager = _ControlImplManager::GetInstance();
SysAssert(pImplManager);
// Update window bounds
// Invalidate
+ SysLog(NID_UI, "[Window Manager Rotation] <<<<<<<<<< UpdateOrientation : START >>>>>>>>>>");
+
_EcoreEvas* pEcoreEvas = GetEcoreEvasMgr()->GetEcoreEvas();
if (!pEcoreEvas)
{
Rectangle bounds = pRootWindow->GetBounds();
SysLog(NID_UI, "[Window Manager Rotation][Window : 0x%x, rot = %d, %d, %d, %d, %d] Update Orientation.", pRootWindow->GetNativeHandle(), rotation, bounds.x, bounds.y, bounds.width, bounds.height);
+
+ SysLog(NID_UI, "[Window Manager Rotation] <<<<<<<<<< UpdateOrientation : END >>>>>>>>>>");
}
#endif
#include "FUiCtrl_FooterImpl.h"
#include "FUiCtrl_Form.h"
#include "FUiCtrl_Frame.h"
+#include "FUiCtrl_FrameImpl.h"
#include "FUiCtrl_TabImpl.h"
#include "FUiCtrl_Indicator.h"
const FloatDimension portraitSize = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF();
const FloatDimension landscapeSize = FloatDimension(portraitSize.height, portraitSize.width);
+ // Adjust the position of the partial Frame.
+ _FrameImpl* pFrameImpl = dynamic_cast<_FrameImpl*>(GetParent());
+ if (pFrameImpl)
+ {
+ FrameShowMode frameShowMode = pFrameImpl->GetShowMode();
+
+ if ((frameShowMode == FRAME_SHOW_MODE_PARTIAL_SCREEN) || (frameShowMode == FRAME_SHOW_MODE_PARTIAL_SCREEN_FLOATING))
+ {
+ bool movable = pFrameImpl->GetCore().IsMovable();
+ pFrameImpl->GetCore().SetMovable(true);
+
+ FloatPoint prevPoint = pFrameImpl->GetPositionF();
+ FloatPoint curPoint(0.0f, 0.0f);
+
+ if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
+ {
+ curPoint.x = portraitSize.width / portraitSize.height * prevPoint.x;
+ curPoint.y = portraitSize.height / portraitSize.width * prevPoint.y;
+ }
+ else
+ {
+ curPoint.x = portraitSize.height / portraitSize.width * prevPoint.x;
+ curPoint.y = portraitSize.width / portraitSize.height * prevPoint.y;
+ }
+
+ pFrameImpl->SetPosition(curPoint);
+
+ pFrameImpl->GetCore().SetMovable(movable);
+ }
+ }
+
// Change layout.
_ContainerImpl::OnChangeLayout(orientation);
SysTryReturnVoidResult(NID_UI_CTRL, GetLastResult() == E_SUCCESS, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
SysAssert(pCoreManager);
const FloatDimension& screenSize = pCoreManager->GetScreenSizeF();
- if (GetCore().GetShowMode() == FRAME_SHOW_MODE_FULL_SCREEN)
+ FrameShowMode frameShowMode = GetCore().GetShowMode();
+
+ if (frameShowMode == FRAME_SHOW_MODE_FULL_SCREEN)
{
if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
{
SetSize(FloatDimension(screenSize.height, screenSize.width));
}
}
+ else if ((frameShowMode == FRAME_SHOW_MODE_PARTIAL_SCREEN) || (frameShowMode == FRAME_SHOW_MODE_PARTIAL_SCREEN_FLOATING))
+ {
+ // Adjust the position of the partial Frame.
+ bool movable = IsMovable();
+ SetMovable(true);
+
+ FloatPoint prevPoint = GetPositionF();
+ FloatPoint curPoint(0.0f, 0.0f);
+
+ if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
+ {
+ curPoint.x = screenSize.width / screenSize.height * prevPoint.x;
+ curPoint.y = screenSize.height / screenSize.width * prevPoint.y;
+ }
+ else
+ {
+ curPoint.x = screenSize.height / screenSize.width * prevPoint.x;
+ curPoint.y = screenSize.width / screenSize.height * prevPoint.y;
+ }
+
+ SetPosition(curPoint);
+
+ SetMovable(movable);
+ }
SetResizable(resizable);
}