summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel@osg.samsung.com>2017-12-04 23:16:09 +0000
committerMarcel Hollerbach <marcel@osg.samsung.com>2017-12-04 23:16:09 +0000
commitea431832d75339eb980c6ed1a6b53779019d279b (patch)
tree3effd4fe74c66c4d11d97818d68799c3d5c63a9c
parentb19cceb224a81a471faa1a3712e919550cc46a53 (diff)
downloadenlightenment-devs/bu5hm4n/sandbox_fix.tar.gz
just to show okra
-rw-r--r--src/bin/e_gadget_runner.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/bin/e_gadget_runner.c b/src/bin/e_gadget_runner.c
index eb11b6ecbd..2a8feecce4 100644
--- a/src/bin/e_gadget_runner.c
+++ b/src/bin/e_gadget_runner.c
@@ -527,7 +527,6 @@ popup_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EI
Instance *inst = data;
Evas_Object *ext;
- inst->ctxpopup = NULL;
ext = evas_object_data_get(obj, "extracted");
elm_box_unpack_all(obj);
inst->extracted = eina_list_remove(inst->extracted, ext);
@@ -544,8 +543,13 @@ static void
popup_hide(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Instance *inst = data;
- elm_ctxpopup_dismiss(inst->ctxpopup);
- evas_object_del(elm_object_content_get(inst->ctxpopup));
+ if (obj == inst->ctxpopup)
+ {
+ elm_ctxpopup_dismiss(inst->ctxpopup);
+ evas_object_del(elm_object_content_get(inst->ctxpopup));
+ inst->ctxpopup = NULL;
+ }
+
}
static void
@@ -589,6 +593,9 @@ popup_added(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
if (!efl_wl_surface_extract(event_info)) return;
inst->extracted = eina_list_append(inst->extracted, event_info);
+ if (inst->ctxpopup)
+ evas_object_del(inst->ctxpopup);
+
inst->ctxpopup = elm_ctxpopup_add(inst->box);
elm_object_style_set(inst->ctxpopup, "noblock");
evas_object_smart_callback_add(inst->ctxpopup, "dismissed", popup_dismissed, inst);