From a4d13328e9a009e1c5d845c58c8f58f7eb2bb79d Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 17 Apr 2013 06:31:59 +0100 Subject: [PATCH] put zoomap shaped/solid edc stuff back for menus, let comp wins use it more generally --- src/bin/e_comp.c | 3 +++ src/bin/e_menu.c | 9 ++++++++- src/bin/e_menu.h | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 929834d88..5ec705808 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -1971,6 +1971,7 @@ _e_comp_win_dummy_add(E_Comp *c, Evas_Object *obj, E_Object *eobj, Eina_Bool nol { E_Comp_Win *cw; int x, y, w, h; + Eina_Bool solid = EINA_FALSE; cw = calloc(1, sizeof(E_Comp_Win)); if (!cw) return NULL; @@ -1992,6 +1993,7 @@ _e_comp_win_dummy_add(E_Comp *c, Evas_Object *obj, E_Object *eobj, Eina_Bool nol cw->shape = cw->menu->shape; cw->dfn = e_object_delfn_add(E_OBJECT(cw->menu), _e_comp_object_del, cw); cw->show_ready = cw->menu->cur.visible; + solid = cw->menu->solid; break; default: CRI("UNHANDLED"); @@ -2017,6 +2019,7 @@ _e_comp_win_dummy_add(E_Comp *c, Evas_Object *obj, E_Object *eobj, Eina_Bool nol e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", "e/comp/effects/none"); cw->shobj = edje_object_add(c->evas); cw->zoomobj = e_zoomap_add(c->evas); + e_zoomap_solid_set(cw->zoomobj, solid); _e_comp_win_shadow_setup(cw); edje_object_part_swallow(cw->effect_obj, "e.swallow.content", cw->shobj); diff --git a/src/bin/e_menu.c b/src/bin/e_menu.c index e333eb8c0..5644a8778 100644 --- a/src/bin/e_menu.c +++ b/src/bin/e_menu.c @@ -1704,7 +1704,14 @@ _e_menu_realize(E_Menu *m) evas_object_name_set(o, "menu->bg_object"); evas_object_data_set(o, "e_menu", m); evas_object_data_set(o, "eobj", m); - e_theme_edje_object_set(o, "base/theme/menus", "e/widgets/menu/default/background"); + if (e_theme_edje_object_set(o, "base/theme/menus", "e/widgets/menu/default/background")) + { + const char *s; + + s = edje_object_data_get(m->bg_object, "argb"); + if (!s) s = edje_object_data_get(m->bg_object, "shaped"); + if ((!s) || (s[0] != '1')) m->solid = 1; + } if (m->header.title) { edje_object_part_text_set(o, "e.text.title", m->header.title); diff --git a/src/bin/e_menu.h b/src/bin/e_menu.h index 8c4d05c29..f0387663c 100644 --- a/src/bin/e_menu.h +++ b/src/bin/e_menu.h @@ -72,6 +72,7 @@ struct _E_Menu Eina_Bool pending_new_submenu : 1; Eina_Bool have_submenu : 1; Eina_Bool in_active_list : 1; + Eina_Bool solid : 1; // theme has data.item: "solid" "1" }; struct _E_Menu_Item