fixed bug (N_SE-49122, N_SE-49192)
authorChulheon <ch.jeong47@samsung.com>
Tue, 20 Aug 2013 09:45:08 +0000 (18:45 +0900)
committerChulheon <ch.jeong47@samsung.com>
Tue, 20 Aug 2013 09:45:08 +0000 (18:45 +0900)
Change-Id: If648045e32f74a9dbef24093d96105ba13db0eac

src/ui/controls/FUiCtrl_EditCopyPasteManager.cpp
src/ui/controls/FUiCtrl_Keypad.cpp

index 5119896..275106b 100644 (file)
@@ -20,6 +20,8 @@
  * @brief              This is the implementation file for the _EditCopyPasteManager class.
  */
 
+#include "FUiAnim_ControlVisualElement.h"
+#include "FUiAnim_VisualElementImpl.h"
 #include <appsvc/appsvc.h>
 #include <FApp_AppControlManager.h>
 #include <FApp_AppMessageImpl.h>
@@ -308,14 +310,18 @@ _EditCopyPasteMagnifier::CaptureTextArea(Canvas& canvas)
        float adjustPosY = 0.0f;
        FloatRectangle cursorBounds(0.0f, 0.0f, 0.0f, 0.0f);
        FloatRectangle captureBounds(0.0f, 0.0f, 0.0f, 0.0f);
+       _VisualElementImpl* pEditVisualElementImpl = null;
 
        _Edit* pEdit = __pCopyPasteManager->GetEdit();
        SysTryReturnVoidResult(NID_UI_CTRL, pEdit, E_INVALID_STATE, "[E_INVALID_STATE] pEdit is null.");
 
+       _VisualElement* pEditVisualElement = pEdit->GetVisualElement();
+       SysTryReturnVoidResult(NID_UI_CTRL, pEditVisualElement, E_INVALID_STATE, "[E_INVALID_STATE] pEditVisualElement is null.");
+
        _EditPresenter* pEditPresenter = pEdit->GetPresenter();
        SysTryReturnVoidResult(NID_UI_CTRL, pEditPresenter, E_INVALID_STATE, "[E_INVALID_STATE] pEditPresenter is null.");
 
-       pEditPresenter->CalculateCursorBounds(pEditPresenter->GetTextBoundsF(), cursorBounds, __handlerCursorPos);
+       pEditPresenter->CalculateCursorBounds(pEditPresenter->GetTextBoundsF(), cursorBounds,__handlerCursorPos);
 
        GET_SHAPE_CONFIG(EDIT::COPYPASTE_MAGNIFIER_CAPTURE_WIDTH, pEdit->GetOrientation(), captureWidth);
        GET_SHAPE_CONFIG(EDIT::COPYPASTE_MAGNIFIER_CAPTURE_HEIGHT, pEdit->GetOrientation(), captureHeight);
@@ -346,29 +352,37 @@ _EditCopyPasteMagnifier::CaptureTextArea(Canvas& canvas)
                adjustPosY = captureHeight - captureBounds.height;
        }
 
-       Bitmap* pOriginalBitmp = pEdit->GetCapturedBitmapN(true);
-       SysTryReturnVoidResult(NID_UI_CTRL, pOriginalBitmp, E_INVALID_STATE, "[E_INVALID_STATE] pOriginalBitmp is null.");
+       Bitmap* pOriginalBitmp = null;
+       Canvas* pCanvas = new (std::nothrow) Canvas;
+       SysTryReturnVoidResult(NID_UI_CTRL, pCanvas, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
 
-       Bitmap bitmap;
-       r = bitmap.Construct(FloatRectangle(0, 0, captureBounds.width, captureBounds.height));
-       SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+       r = pCanvas->Construct(FloatRectangle(0, 0, captureBounds.width, captureBounds.height));
+       SysTryCatch(NID_UI, r == E_SUCCESS, , r, "[%s] Propagated.", GetErrorMessage(r));
 
-       r = bitmap.Merge(FloatPoint(0.0f, 0.0f), *pOriginalBitmp, CoordinateSystem::AlignToDevice(FloatRectangle(captureBounds.x, captureBounds.y, captureBounds.width, captureBounds.height)));
-       SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
+       pEditVisualElementImpl = _VisualElementImpl::GetInstance(*pEditVisualElement);
+
+       pEditVisualElementImpl->Capture(*pCanvas, CoordinateSystem::AlignToDevice(FloatRectangle(0, 0, captureBounds.width, captureBounds.height)), CoordinateSystem::AlignToDevice(captureBounds), true);
 
-       r = bitmap.SetScalingQuality(BITMAP_SCALING_QUALITY_HIGH);
+       pOriginalBitmp = new (std::nothrow) Bitmap;
+       SysTryCatch(NID_UI, pOriginalBitmp != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+
+       r = pOriginalBitmp->Construct(*pCanvas, CoordinateSystem::AlignToDevice(FloatRectangle(0, 0, captureBounds.width, captureBounds.height)));
+
+       r = pOriginalBitmp->SetScalingQuality(BITMAP_SCALING_QUALITY_HIGH);
        SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
 
-       r = bitmap.Scale(CoordinateSystem::AlignToDevice(FloatDimension(bitmap.GetActualWidth()*1.5f, bitmap.GetActualHeight()*1.5f)));
+       r = pOriginalBitmp->Scale(CoordinateSystem::AlignToDevice(FloatDimension(pOriginalBitmp->GetActualWidth()*1.5f, pOriginalBitmp->GetActualHeight()*1.5f)));
        SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
 
-       canvas.DrawBitmap(CoordinateSystem::AlignToDevice(FloatPoint(capturePosX + adjustPosX*1.5f, capturePosY + adjustPosY*1.5f)), bitmap);
+       canvas.DrawBitmap(CoordinateSystem::AlignToDevice(FloatPoint(capturePosX + adjustPosX*1.5f, capturePosY + adjustPosY*1.5f)), *pOriginalBitmp);
 
+       delete pCanvas;
        delete pOriginalBitmp;
 
        return;
 
 CATCH:
+       delete pCanvas;
        delete pOriginalBitmp;
 
        return;
index ea10aac..03934ef 100755 (executable)
@@ -573,6 +573,7 @@ _Keypad::OnNativeWindowActivated(void)
        {
                __pChildEdit->SetFocused();
                __isFirstCall = false;
+               ChangeLayoutInternal(LAYOUT_CHANGE_NONE);
        }
 
        return;