discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4e4dd8b7c0cdd83ad5b7d1920e6e4036da7c3acd
commit 4e4dd8b7c0cdd83ad5b7d1920e6e4036da7c3acd Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Fri Sep 1 13:40:12 2017 -0400 add time config event rects to gadget popups list attempt to preserve event propagation for sites in different environments --- src/modules/time/clock.c | 2 ++ src/modules/time/clock.h | 1 + src/modules/time/config.c | 11 ++++++++--- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/modules/time/clock.c b/src/modules/time/clock.c index ccc45e911..c3166f97c 100644 --- a/src/modules/time/clock.c +++ b/src/modules/time/clock.c @@ -325,6 +325,7 @@ clock_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EI { advanced |= !!inst->cfg->advanced; seconds |= !!inst->cfg->show_seconds; + if (inst->cfg->inst == inst) inst->cfg->inst = NULL; } free(inst); if ((!advanced) && (!seconds)) return; @@ -381,6 +382,7 @@ static Evas_Object * _clock_gadget_configure(Evas_Object *g) { Instance *inst = evas_object_data_get(g, "clock"); + inst->cfg->inst = inst; return config_clock(inst->cfg, e_comp_object_util_zone_get(g)); } diff --git a/src/modules/time/clock.h b/src/modules/time/clock.h index a81f3862d..7e5338ffd 100644 --- a/src/modules/time/clock.h +++ b/src/modules/time/clock.h @@ -34,6 +34,7 @@ struct _Config struct _Config_Item { int id; + Instance *inst; struct { int start, len; // 0->6 0 == sun, 6 == sat, number of days } weekend; diff --git a/src/modules/time/config.c b/src/modules/time/config.c index 564af4ed7..5cc23c37f 100644 --- a/src/modules/time/config.c +++ b/src/modules/time/config.c @@ -147,7 +147,9 @@ _config_color_setup(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) elm_ctxpopup_hover_parent_set(ctx, e_comp->elm); evas_object_layer_set(ctx, E_LAYER_MENU); elm_object_style_set(ctx, "noblock"); - e_comp_object_util_del_list_append(ctx, _config_autoclose_rect_add(ctx)); + rect = _config_autoclose_rect_add(ctx); + evas_object_smart_callback_call(ci->inst->o_clock, "gadget_popup", rect); + e_comp_object_util_del_list_append(ctx, rect); evas_object_smart_callback_add(ctx, "dismissed", _clock_color_dismissed, NULL); elm_object_content_set(ctx, bx); evas_pointer_canvas_xy_get(e_comp->evas, &x, &y); @@ -317,7 +319,8 @@ _config_weekend_end_populate(void *data, Evas_Object *obj, void *event_info EINA static void _config_timezone_setup(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { - Evas_Object *hover, *gl; + Evas_Object *hover, *gl, *r; + Config_Item *ci = data; hover = elm_hover_add(e_comp->elm); evas_object_layer_set(hover, E_LAYER_MENU); @@ -335,7 +338,9 @@ _config_timezone_setup(void *data, Evas_Object *obj, void *event_info EINA_UNUSE elm_object_part_content_set(hover, "middle", gl); time_zoneinfo_scan(gl); e_comp_object_util_del_list_append(gl, hover); - e_comp_object_util_del_list_append(gl, _config_autoclose_rect_add(gl)); + r = _config_autoclose_rect_add(gl); + evas_object_smart_callback_call(ci->inst->o_clock, "gadget_popup", r); + e_comp_object_util_del_list_append(gl, r); evas_object_show(hover); } --