aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2012-08-17 00:25:37 +0000
committerCarsten Haitzler <raster@rasterman.com>2012-08-17 00:25:37 +0000
commit74df9a238b30ef48feb8fb43205b24c668f12696 (patch)
tree5ad1c99e6fa9d7b7c1609f190f07d49d6ffc1b92
parentacee1ce1555f18b10ba648a302880184139772d6 (diff)
downloadenlightenment-74df9a238b30ef48feb8fb43205b24c668f12696.tar.gz
enlightenment-74df9a238b30ef48feb8fb43205b24c668f12696.tar.xz
enlightenment-74df9a238b30ef48feb8fb43205b24c668f12696.zip
make invisible shelves work again... and actually fi the longer
standing bug of them not chanigng until a restart SVN revision: 75339
-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);