diff --git a/src/bin/e_popup.c b/src/bin/e_popup.c index c571a375b..588a6d2ea 100644 --- a/src/bin/e_popup.c +++ b/src/bin/e_popup.c @@ -206,6 +206,16 @@ e_popup_edje_bg_object_set(E_Popup *pop, Evas_Object *o) else ecore_evas_shaped_set(pop->ecore_evas, pop->shaped); } + else + { + pop->shaped = 0; + ecore_evas_alpha_set(pop->ecore_evas, pop->shaped); + eina_hash_del(_e_popup_hash, e_util_winid_str_get(pop->evas_win), pop); + pop->evas_win = ecore_evas_software_x11_window_get(pop->ecore_evas); + eina_hash_add(_e_popup_hash, e_util_winid_str_get(pop->evas_win), pop); + e_container_window_raise(pop->zone->container, pop->evas_win, pop->layer); + ecore_evas_shaped_set(pop->ecore_evas, pop->shaped); + } } EAPI void diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index c3cf936c9..52ee9523d 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -202,11 +202,13 @@ e_shelf_zone_new(E_Zone *zone, const char *name, const char *style, int popup, i es->o_base = edje_object_add(es->evas); es->name = eina_stringshare_add(name); evas_object_resize(es->o_base, es->w, es->h); + + e_shelf_style_set(es, style); + if (es->popup) { evas_object_show(es->o_event); evas_object_show(es->o_base); - e_popup_edje_bg_object_set(es->popup, es->o_base); ecore_x_netwm_window_type_set(es->popup->evas_win, ECORE_X_WINDOW_TYPE_DOCK); } @@ -218,7 +220,6 @@ e_shelf_zone_new(E_Zone *zone, const char *name, const char *style, int popup, i evas_object_layer_set(es->o_base, layer); } - e_shelf_style_set(es, style); es->gadcon = e_gadcon_swallowed_new(es->name, es->id, es->o_base, "e.swallow.content"); locname = es->name; @@ -839,6 +840,8 @@ e_shelf_style_set(E_Shelf *es, const char *style) else es->instant_delay = -1.0; + if (es->popup) e_popup_edje_bg_object_set(es->popup, es->o_base); + if (!es->gadcon) return; e_gadcon_unpopulate(es->gadcon); e_gadcon_populate(es->gadcon);