aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/bin/e_popup.c10
-rw-r--r--src/bin/e_shelf.c7
2 files changed, 15 insertions, 2 deletions
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);