Fixed the AppWidgetView
authorChoi Munseok <ms47.choi@samsung.com>
Fri, 5 Jul 2013 00:18:34 +0000 (09:18 +0900)
committerChoi Munseok <ms47.choi@samsung.com>
Fri, 5 Jul 2013 00:18:34 +0000 (09:18 +0900)
Change-Id: I92f4d5a21aa88d4026595d5e6c9935458f454f92
Signed-off-by: Choi Munseok <ms47.choi@samsung.com>
src/FShell_AppWidgetView.cpp
src/FShell_AppWidgetView.h

index 16e06fa..11b8a3c 100644 (file)
@@ -78,6 +78,7 @@ _AppWidgetView::_AppWidgetView(void)
        , __pixmap(-1)
        , __pAppWidgetViewEventListenerList(new (std::nothrow) LinkedListT<_IAppWidgetViewEventListener*>)
        , __destroyed(false)
+       , __initialized(false)
 {
        __pAppWidgetViewManager = _AppWidgetViewManager::GetInstance();
        SysTryReturnVoidResult(NID_SHELL, __pAppWidgetViewManager, E_SYSTEM, "[E_SYSTEM] A system error occurred.");
@@ -124,8 +125,10 @@ _AppWidgetView::Initialize(const AppId& appId, const Tizen::Base::String& provid
        SysLog(NID_SHELL, "[%f %f %f %f]", rect.x, rect.y, rect.width, rect.height);
        SysLog(NID_SHELL, "userInfo [%ls]", userInfo.GetPointer());
 
+       __initialized = true;
        result r = SetBounds(rect);
        SysTryReturn(NID_SHELL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
+       __initialized = false;
 
        r = __pAppWidgetViewPresenter->Initialize(appId, providerName);
        SysTryReturn(NID_SHELL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
@@ -521,6 +524,17 @@ _AppWidgetView::OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture)
        return false;
 }
 
+result
+_AppWidgetView::OnBoundsChanging(const Tizen::Graphics::FloatRectangle& bounds)
+{
+       if (__initialized == false)
+       {
+               return E_INVALID_OPERATION;
+       }
+
+       return E_SUCCESS;
+}
+
 void
 _AppWidgetView::OnBoundsChanged(void)
 {
@@ -644,6 +658,7 @@ _AppWidgetView::OnFrameRestored(const Tizen::Ui::Controls::_Frame& source)
 void
 _AppWidgetView::OnAppWidgetUpdated(const Bitmap& bitmap, const FloatDimension& size)
 {
+       __initialized = true;
        __resizeFromRemote = true;
        SetSize(size);
        __resizeFromRemote = false;
@@ -662,6 +677,8 @@ _AppWidgetView::OnAppWidgetUpdated(int pixmap)
        int width = 0;
        int height = 0;
 
+       __initialized = true;
+
        ecore_x_pixmap_geometry_get(pixmap, &x, &y, &width, &height);
        SysTryReturnVoidResult(NID_SHELL, (width > 0) && (height > 0), E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid [0x%x %d %d].", pixmap, width , height);
 
index 691ab68..fd9d077 100644 (file)
@@ -113,6 +113,7 @@ private:
        virtual void OnVisualElementAnimationRepeated(const Tizen::Ui::Animations::VisualElementAnimation& animation, const Tizen::Base::String& keyName, Tizen::Ui::Animations::VisualElement& target, long currentRepeatCount);
        virtual bool OnFlickGestureDetected(Tizen::Ui::_TouchFlickGestureDetector& gesture);
        virtual bool OnFlickGestureCanceled(Tizen::Ui::_TouchFlickGestureDetector& gesture);
+       virtual result OnBoundsChanging(const Tizen::Graphics::FloatRectangle& bounds);
        virtual void OnBoundsChanged(void);
        virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchInfo);
        virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchInfo);
@@ -189,6 +190,7 @@ private:
        std::unique_ptr<Tizen::Ui::Animations::VisualElement, _VisualElementDeleter> __pPixmapVisualElement;
        std::unique_ptr<Tizen::Ui::Animations::VisualElementSurface> __pVisualElementSurface;
        bool __destroyed;
+       bool __initialized;
 }; // _AppWidgetView
 
 }} // Tizen::Shell