Page MenuHomePhabricator

evas_object_hide not working in the PackageKit gadget (in a bryce popup)
Closed, InvalidPublic

Description

I have no idea where this one comes from, or what is triggering the issue, but it is easy observable in the PackageKit gadget.

When the gadget is placed in a shelve it works as expected, but when on a bryce a call to evas_object_hide is not working

This is in an old shelve:

And this inside a bryce:

As you can see there is a visible progressbar in the second shoot, it should instead be hidden.
The code that generate the 2 gadget is exactly the same, I have no idea why this is happening.
You can see the code here: https://git.enlightenment.org/core/enlightenment.git/tree/src/modules/packagekit/e_mod_packagekit.c
the 2 relevant functions are packagekit_popup_new() and packagekit_popup_update(),
for what I can say the evas_object_hide(inst->popup_progressbar) call on line 264 is ignored when inside a bryce...

DaveMDS created this task.Jul 9 2018, 12:39 PM
zmike added a comment.Jul 9 2018, 12:52 PM

A quick glance at this seems like it should never have worked? The progressbar appears to be the content of a frame object, which is just an edje object; you cannot manually hide/show objects inside edje objects. You should instead have been hiding the frame containing it since this is in a table, i.e., not an edje object.

Most likely this works in gadcon because it's not elm objects all the way down. New gadgets use only elm objects, so all the propagation/hierarchy/parenting is working correctly instead of being stacked upon a mountain of hacks.

My recommendation would be to change the code for the non-gadcon version to comply with expected elm behavior.

DaveMDS closed this task as Invalid.Jul 9 2018, 1:35 PM

Indeed hiding the frame instead of the progressbar fixed the issue, thanks for the advice, I fixed the code.

A side note: while I understand the tecnhican problem, I think this is an elm design issue, from a user pov there should be no difference of behaviour when you put a widget in a box, a table or a frame.

I don't disagree that it's conceptually confusing, but anything which implements the layout class (e.g., efl_isa(obj, EFL_UI_LAYOUT_CLASS)) cannot have its children's attributes modified.

Probably @segfaultxavi could ensure that this is documented in some way...

I've added this to my personal list of documentation tasks. At some point I'll turn this list into proper Phab tickets.

thanks for the gadget fix, but it seems, that this breaks the gadcon module. the popup (background) is not closed anymore.

http://www.enlightenment.org/ss/e-5b446f5126aef9.68258337.jpg

Greetings Simon

oh thats on all gadcon modules e.g. backlight, system

http://www.enlightenment.org/ss/e-5b44710e275306.67890130.jpg

sorry for the first post, has only package kid tested

Simon

was talking to bu5hm4n, issue was coursed by https://phab.enlightenment.org/D6540
sorry again

Simon