From 8d68a1bd84c16a81259964bc5fe1e5466ecfa1f7 Mon Sep 17 00:00:00 2001 From: Hyerim Bae Date: Fri, 7 Sep 2012 18:59:16 +0900 Subject: [PATCH] [Title] Fix a issue that the crash happens when select OK button in input type picker. [Issue#] N/A [Problem] The crash happens when select OK button in input type picker. [Cause] The input type picker reqeust event comes twice. [Solution] Delete the previous popup. [Team] Browser UI [Developer] Hyerim Bae [Request] N/A Change-Id: Icb6548864e8a23cdca51baab248a802dfd47c17c --- Source/WebKit2/UIProcess/API/efl/InputPicker.cpp | 30 ++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Source/WebKit2/UIProcess/API/efl/InputPicker.cpp b/Source/WebKit2/UIProcess/API/efl/InputPicker.cpp index 81e8397..ab2ad87 100644 --- a/Source/WebKit2/UIProcess/API/efl/InputPicker.cpp +++ b/Source/WebKit2/UIProcess/API/efl/InputPicker.cpp @@ -164,6 +164,11 @@ void InputPicker::showDataList(Ewk_Input_Type inputType, Eina_List* optionList) m_dataList = optionList; + if(m_pickerLayout && m_pickerLayout->popup){ + evas_object_del(m_pickerLayout->popup); + m_pickerLayout->popup = 0; + } + if (m_pickerLayout) delete m_pickerLayout; @@ -519,6 +524,11 @@ void InputPicker::ewk_date_popup(const char* inputValue) Evas_Object* parent = elm_object_parent_widget_get(m_ewkView); Evas_Object* win = parent; + if(m_pickerLayout && m_pickerLayout->popup){ + evas_object_del(m_pickerLayout->popup); + m_pickerLayout->popup = 0; + } + if (m_pickerLayout) delete m_pickerLayout; @@ -688,6 +698,11 @@ void InputPicker::ewk_week_popup(const char* inputValue) Evas_Object* parent = elm_object_parent_widget_get(m_ewkView); Evas_Object* win = parent; + if(m_pickerLayout && m_pickerLayout->popup){ + evas_object_del(m_pickerLayout->popup); + m_pickerLayout->popup = 0; + } + if (m_pickerLayout) delete m_pickerLayout; @@ -783,6 +798,11 @@ void InputPicker::ewk_time_popup(const char* inputValue) Evas_Object* parent = elm_object_parent_widget_get(m_ewkView); Evas_Object* win = parent; + if(m_pickerLayout && m_pickerLayout->popup){ + evas_object_del(m_pickerLayout->popup); + m_pickerLayout->popup = 0; + } + if (m_pickerLayout) delete m_pickerLayout; @@ -852,6 +872,11 @@ void InputPicker::ewk_month_popup(const char* inputValue) Evas_Object* parent = elm_object_parent_widget_get(m_ewkView); Evas_Object* win = parent; + if(m_pickerLayout && m_pickerLayout->popup){ + evas_object_del(m_pickerLayout->popup); + m_pickerLayout->popup = 0; + } + if (m_pickerLayout) delete m_pickerLayout; @@ -926,6 +951,11 @@ void InputPicker::ewk_datetime_popup(const char* inputValue, bool local) Evas_Object* parent = elm_object_parent_widget_get(m_ewkView); Evas_Object* win = parent; + if(m_pickerLayout && m_pickerLayout->popup){ + evas_object_del(m_pickerLayout->popup); + m_pickerLayout->popup = 0; + } + if (m_pickerLayout) delete m_pickerLayout; -- 2.7.4