Page MenuHomePhabricator

efl_ui_item: use signals from the theme and not object
ClosedPublic

Authored by bu5hm4n on Dec 17 2019, 1:19 AM.

Details

Summary

the problem here is that when we are using the signals from the object,
then the edje object itself will receive press/unpress events before
any content that is swallowed into the edje object.

This means, that no clickable content, added to a item could be clicked
without selecting / unselecting the item. Which was a problem.

With this commit the theme is sending signals which are then passed to
the efl.input.clickable mixin, this way, the part is stacked below the
added content, which means, clickable content will not select / unselect
the item anymore.

Depends on D10944

Diff Detail

Repository
rEFL core/efl
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
bu5hm4n created this revision.Dec 17 2019, 1:19 AM
bu5hm4n requested review of this revision.Dec 17 2019, 1:19 AM

I have a question regarding this clickable part.

in scrollable view,
flick event should not treat normal click event
and also should not highlight item.

I think scroll interface flag up on_hold,
is edje consider this on_hold flag and dismiss the touch event?

and also
there are few requirement that item should not clickable
(not only disabled case) such as readonly,
and how do we control this option with edje implementation without adding new edje styles?
should we make some signal for this?

  • Not beeing able to be clickable can be realized like it is disabled. Alternatively we can also add this feature to the action_connector, and just not redirect these events. (Btw. can you give a usecase for that?)
  • on_hold is something that only works within the same event "callstack" but not across edje - so this does not work here.
  • What do you mean with flick ? If you move your cursor out of a pressed element, unpress is going to be emitted, but not clicked.

I hope to have answered all of your questions :)

cedric requested changes to this revision.Dec 19 2019, 4:10 PM
cedric added inline comments.
src/lib/elementary/efl_ui_item.c
132–135

This would be cleaner, I think, if it was an API on layout object. Something where you ask for the version and you get the version number directly (as sd->version) or maybe an API that return EINA_TRUE when the version is above a certain value.

This revision now requires changes to proceed.Dec 19 2019, 4:10 PM
bu5hm4n updated this revision to Diff 27728.Dec 20 2019, 7:44 AM
bu5hm4n edited the summary of this revision. (Show Details)

use theme API

cedric accepted this revision.Dec 20 2019, 9:54 AM
This revision is now accepted and ready to land.Dec 20 2019, 9:54 AM
Closed by commit rEFLc49880076c35: efl_ui_item: use signals from the theme and not object (authored by Marcel Hollerbach <mail@marcel-hollerbach.de>, committed by cedric). · Explain WhyDec 20 2019, 10:34 AM
This revision was automatically updated to reflect the committed changes.