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);
 }
 

-- 


Reply via email to