}
bool JavaScriptModalDialogEfl::ShowJavaScriptDialog() {
- popup_ = elm_popup_add(web_view_->evas_object());
+ Evas_Object* parent = elm_object_top_widget_get(
+ elm_object_parent_widget_get(web_view_->evas_object()));
+ if (!parent)
+ parent = web_view_->evas_object();
+
+ Evas_Object* conformant = elm_conformant_add(parent);
+ if (!conformant)
+ return 0;
+
+ evas_object_size_hint_weight_set(conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(parent, conformant);
+ evas_object_show(conformant);
+
+ Evas_Object* layout_ = elm_layout_add(conformant);
+ if (!layout_)
+ return 0;
+
+ elm_layout_theme_set(layout_, "layout", "application", "default");
+ evas_object_size_hint_weight_set(layout_, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(layout_);
+
+ elm_object_content_set(conformant, layout_);
+
+ popup_ = elm_popup_add(layout_);
if (!popup_)
return false;
JavaScriptModalDialogEfl* dialog = (JavaScriptModalDialogEfl*)data;
dialog->callback_.Run(true, base::string16());
- evas_object_del(elm_object_top_widget_get(obj));
+ evas_object_del(dialog->popup_);
dialog->close();
dialog->web_view_->SmartCallback<EWebViewCallbacks::PopupReplyWaitFinish>().call(0);
JavaScriptModalDialogEfl* dialog = (JavaScriptModalDialogEfl*)data;
dialog->callback_.Run(false, base::string16());
- evas_object_del(elm_object_top_widget_get(obj));
+ evas_object_del(dialog->popup_);
dialog->close();
dialog->web_view_->SmartCallback<EWebViewCallbacks::PopupReplyWaitFinish>().call(0);
JavaScriptModalDialogEfl* dialog = (JavaScriptModalDialogEfl*)data;
dialog->callback_.Run(true, base::string16());
- evas_object_del(elm_object_top_widget_get(obj));
+ evas_object_del(dialog->popup_);
dialog->close();
dialog->web_view_->SmartCallback<EWebViewCallbacks::PopupReplyWaitFinish>().call(0);
JavaScriptModalDialogEfl* dialog = (JavaScriptModalDialogEfl*)data;
dialog->callback_.Run(false, base::string16());
- evas_object_del(elm_object_top_widget_get(obj));
+ evas_object_del(dialog->popup_);
dialog->close();
dialog->web_view_->SmartCallback<EWebViewCallbacks::PopupReplyWaitFinish>().call(0);
prompt_data = elm_entry_entry_get(dialog->prompt_entry_);
dialog->callback_.Run(true, base::UTF8ToUTF16(prompt_data));
- evas_object_del(elm_object_top_widget_get(obj));
+ evas_object_del(dialog->popup_);
dialog->close();
dialog->web_view_->SmartCallback<EWebViewCallbacks::PopupReplyWaitFinish>().call(0);
JavaScriptModalDialogEfl* dialog = (JavaScriptModalDialogEfl*)data;
dialog->callback_.Run(false, base::string16());
- evas_object_del(elm_object_top_widget_get(obj));
+ evas_object_del(dialog->popup_);
dialog->close();
dialog->web_view_->SmartCallback<EWebViewCallbacks::PopupReplyWaitFinish>().call(0);