make invisible shelves work again... and actually fi the longer

standing bug of them not chanigng until a restart



SVN revision: 75339
This commit is contained in:
Carsten Haitzler 2012-08-17 00:25:37 +00:00
parent acee1ce155
commit 74df9a238b
2 changed files with 15 additions and 2 deletions

View File

@ -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

View File

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