This commit is indicative of wrong behavior in EFL/Elementary. The elm_win at e_comp->elm IS the compositor canvas. The evas returned by evas_object_evas_get() in this case must always be e_comp->evas. If it is not, then there is a huge bug somewhere in the libraries which will break the compositor.
On Wed, Oct 21, 2015 at 10:28 AM Christopher Michael <devilho...@comcast.net> wrote: > devilhorns pushed a commit to branch master. > > > http://git.enlightenment.org/core/enlightenment.git/commit/?id=7b79e03937b1a5fda9e0c6aa5bbaeced0d35cf98 > > commit 7b79e03937b1a5fda9e0c6aa5bbaeced0d35cf98 > Author: Chris Michael <cp.mich...@samsung.com> > Date: Wed Oct 21 10:26:18 2015 -0400 > > Fix e_menu trying to swallow an object from a different canvas > > _e_menu_realize was trying to swallow the menu->container_object into > the menu->bg_object, but the menu->bg_object was being created on the > compositor canvas, and the container object was being created on the > e_comp->elm_win. > > With recent EFL changes, this causes an abort inside Evas. > > To fix this, set the menu->evas to be the Evas from the > e_comp->elm_win. > > Signed-off-by: Chris Michael <cp.mich...@samsung.com> > --- > src/bin/e_menu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/bin/e_menu.c b/src/bin/e_menu.c > index e6f81be..6410b0e 100644 > --- a/src/bin/e_menu.c > +++ b/src/bin/e_menu.c > @@ -1608,7 +1608,7 @@ _e_menu_realize(E_Menu *m) > if (m->parent_item && m->parent_item->menu) > m->zone = m->parent_item->menu->zone; > if (!m->zone) return; //menu not ready! > - m->evas = e_comp->evas; > + m->evas = evas_object_evas_get(e_comp->elm); > evas_event_freeze(m->evas); > > o = edje_object_add(m->evas); > > -- > > > ------------------------------------------------------------------------------ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel