From b15a15424085131f47103818d131905af7beaa62 Mon Sep 17 00:00:00 2001 From: "keonpyo.kong" Date: Thu, 28 Mar 2013 16:41:54 +0900 Subject: [PATCH] eset focusList when add/remove controls Change-Id: I7e07287295d3a38f3a60b311f1ef143b707126ec Signed-off-by: keonpyo.kong apply code review Change-Id: I868582b34efc806f679bbdb14ea7357d122f04c4 Signed-off-by: keonpyo.kong --- src/ui/FUi_Control.cpp | 12 ++++++++++++ src/ui/FUi_Window.cpp | 9 +++++++++ src/ui/controls/FUiCtrl_Form.cpp | 9 +++++++++ src/ui/controls/FUiCtrl_Frame.cpp | 9 +++++++++ src/ui/inc/FUiCtrl_Form.h | 5 +++-- src/ui/inc/FUiCtrl_Frame.h | 3 +++ src/ui/inc/FUi_Control.h | 1 + src/ui/inc/FUi_Window.h | 1 + 8 files changed, 47 insertions(+), 2 deletions(-) diff --git a/src/ui/FUi_Control.cpp b/src/ui/FUi_Control.cpp index 217465a..3cded3e 100755 --- a/src/ui/FUi_Control.cpp +++ b/src/ui/FUi_Control.cpp @@ -1624,9 +1624,19 @@ _Control::AttachChild(_Control& child) } SysAssert(GetLastResult() == E_SUCCESS); + UpdateFocusList(); return E_SUCCESS; } +void +_Control::UpdateFocusList(void) +{ + _Window* pTop = GetRootWindow(); + if (pTop) + { + pTop->ResetFocusList(); + } +} // E_INVALID_ARG // E_OUT_OF_MEMORY // E_SYSTEM @@ -1789,6 +1799,8 @@ _Control::DetachChild(_Control& child) ClearLastResult(); SysAssert(GetLastResult() == E_SUCCESS); + + UpdateFocusList(); return E_SUCCESS; } diff --git a/src/ui/FUi_Window.cpp b/src/ui/FUi_Window.cpp index ab36f69..aa6ab72 100644 --- a/src/ui/FUi_Window.cpp +++ b/src/ui/FUi_Window.cpp @@ -746,4 +746,13 @@ _Window::GetFocusList(void) const return __pFocusControlList.get(); } +void +_Window::ResetFocusList(void) +{ + if(__pFocusControlList) + { + __pFocusControlList.reset(); + } +} + }} // Tizen::Ui diff --git a/src/ui/controls/FUiCtrl_Form.cpp b/src/ui/controls/FUiCtrl_Form.cpp index 9300c35..7a242fa 100644 --- a/src/ui/controls/FUiCtrl_Form.cpp +++ b/src/ui/controls/FUiCtrl_Form.cpp @@ -2605,6 +2605,15 @@ _Form::GetFocusList(void) const } void +_Form::ResetFocusList(void) +{ + if(__pFocusControlList) + { + __pFocusControlList.reset(); + } +} + +void _Form::UpdateClientBounds(const FloatDimension& size, FloatRectangle& clientBounds) { clientBounds.width = size.width; diff --git a/src/ui/controls/FUiCtrl_Frame.cpp b/src/ui/controls/FUiCtrl_Frame.cpp index c30b2b6..9283722 100644 --- a/src/ui/controls/FUiCtrl_Frame.cpp +++ b/src/ui/controls/FUiCtrl_Frame.cpp @@ -654,4 +654,13 @@ _Frame::OnBackgroundColorChanged(Color& backgroundColor) pLayer->SetOpacity(opacity); } +void +_Frame::ResetFocusList(void) +{ + Tizen::Ui::Controls::_Form* pCurrentForm = GetCurrentForm(); + if (pCurrentForm) + { + pCurrentForm->ResetFocusList(); + } +} }}} // Tizen::Ui::Controls diff --git a/src/ui/inc/FUiCtrl_Form.h b/src/ui/inc/FUiCtrl_Form.h index 31559c9..beabaa6 100644 --- a/src/ui/inc/FUiCtrl_Form.h +++ b/src/ui/inc/FUiCtrl_Form.h @@ -201,8 +201,9 @@ public: virtual void UpdateClientBounds(const Tizen::Graphics::FloatDimension& size, Tizen::Graphics::FloatRectangle& clientBounds); // Focus UI - Tizen::Base::Collection::IListT<_Control*>* GetFocusList(void) const; - + Tizen::Base::Collection::IListT<_Control*>* GetFocusList(void) const; + void ResetFocusList(void); + // Accessor protected: result SetPresenter(const _FormPresenter& formPresenter); diff --git a/src/ui/inc/FUiCtrl_Frame.h b/src/ui/inc/FUiCtrl_Frame.h index ac22402..10eddbb 100644 --- a/src/ui/inc/FUiCtrl_Frame.h +++ b/src/ui/inc/FUiCtrl_Frame.h @@ -87,6 +87,9 @@ public: FrameShowMode GetShowMode(void) const; bool IsActivated(void) const; +// Focus Ui + virtual void ResetFocusList(void); + protected: result SetPresenter(const _FramePresenter& framePresenter); diff --git a/src/ui/inc/FUi_Control.h b/src/ui/inc/FUi_Control.h index db7b1ed..b1b4f58 100755 --- a/src/ui/inc/FUi_Control.h +++ b/src/ui/inc/FUi_Control.h @@ -595,6 +595,7 @@ private: // Focus Ui void MakeFocusList(const _Control* pControl, Tizen::Base::Collection::IListT<_Control*>* pFocusControlList) const; void MakeChildContainerFocusList(const _Control* pControl, int startIndex, Tizen::Base::Collection::IListT<_Control*>* pFocusControlList) const; + void UpdateFocusList(void); private: _ControlHandle __controlHandle; diff --git a/src/ui/inc/FUi_Window.h b/src/ui/inc/FUi_Window.h index a9aae4f..68fea56 100644 --- a/src/ui/inc/FUi_Window.h +++ b/src/ui/inc/FUi_Window.h @@ -114,6 +114,7 @@ public: // Focus UI Tizen::Base::Collection::IListT<_Control*>* GetFocusList(void) const; + virtual void ResetFocusList(void); protected: _Window(void); -- 2.7.4