X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2FCore%2FService%2FPeriodChanger.cpp;h=b58719e34444f5150b4a7e6a6bc4b98839727a8f;hb=95dbfd86b8adb4a52227c71765426d927cba59ec;hp=c754fb5ee2153300c96322f645b933c6ea85c605;hpb=8d26d4cfb47568bbce29b32fc63bdcf9aa86ba8e;p=platform%2Fframework%2Fweb%2Fweb-provider.git diff --git a/src/Core/Service/PeriodChanger.cpp b/src/Core/Service/PeriodChanger.cpp index c754fb5..b58719e 100755 --- a/src/Core/Service/PeriodChanger.cpp +++ b/src/Core/Service/PeriodChanger.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -101,7 +102,6 @@ void PeriodChanger::showPeriodPopup() Evas_Object* window = createWindow(); Evas_Object* periodList = elm_list_add(window); - Evas_Object* radio; if (!periodList) { LogD("failed to add elm_list_add"); @@ -111,12 +111,12 @@ void PeriodChanger::showPeriodPopup() setPopupListData(); // TODO Language ID should be used, not static string for(int i = 0 ; i < sizeof(m_hour) / sizeof(PopupListData); i++) { - radio = elm_radio_add(periodList); - elm_radio_state_value_set(radio, + m_hour[i].radio = elm_radio_add(periodList); + elm_radio_state_value_set(m_hour[i].radio, m_currentPeriod == m_hour[i].newPeriod ? EINA_FALSE : EINA_TRUE); elm_list_item_append(periodList, m_hour[i].period, - radio, + m_hour[i].radio, NULL, selectPeriodCallback, &m_hour[i]); } @@ -248,7 +248,7 @@ void PeriodChanger::selectPeriodCallback(void *data, Evas_Object *obj, void *eve LogD("Update period is set to %f", popupData->newPeriod); popupData->periodChanger->requestToPlatform(popupData->newPeriod); - popupData->periodChanger->destroyPeriodPopup(obj); + ecore_idler_add(popupDestroyIdlerCallback, popupData); } void PeriodChanger::cancelButtonCallback(void *data, Evas_Object *obj, void *event_info) @@ -258,4 +258,11 @@ void PeriodChanger::cancelButtonCallback(void *data, Evas_Object *obj, void *eve This->destroyPeriodPopup(obj); } +Eina_Bool PeriodChanger::popupDestroyIdlerCallback(void *data) +{ + LogD("enter"); + PopupListData* popupData = static_cast(data); + popupData->periodChanger->destroyPeriodPopup(popupData->radio); + return ECORE_CALLBACK_CANCEL; +} } // Service