Commit Graph

15 Commits

Author SHA1 Message Date
Marcel Hollerbach b7432f690f efl_ui_focus_object: do not emit focus_geometry_changed when not needed
Summary:
this is emitted a lot of times, which costs time. Most of the time they
are however not needed. With this commit, these events are not emitted
anymore.

ref T8321

Reviewers: zmike, cedric

Reviewed By: zmike, cedric

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8321

Differential Revision: https://phab.enlightenment.org/D10348
2019-10-11 10:03:17 -04:00
Marcel Hollerbach 6dec272d31 efl_ui_focus_object: apply new event calling convention
Summary:
ref T7758
Depends on D8408

Reviewers: cedric, zmike, segfaultxavi

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7758

Differential Revision: https://phab.enlightenment.org/D8409
2019-03-19 16:31:55 -04:00
Marcel Hollerbach 89b62fd225 efl_ui_focus_object: rename API
these API names have been considered a better choice.

ref T7571

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7994
2019-02-22 14:00:33 +01:00
Christopher Michael c98288c20e efl_ui_focus_object: Don't pass NULL to child_focus_set
When starting elementary_test, efl_ui_focus_object_child_focus_set is
getting passed NULL on startup because elm_test window has no parent.
This makes it difficult to debug and fix T7030 issues. In order to fix
the issue, this patch checks for a valid parent before calling
efl_ui_focus_object_child_focus_set so that it no longer gets passed
NULL on elm_test startup and we can set breakpoints on eo.c:637
without getting interrupted at startup.

ref T7030

Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7677
2019-01-17 14:45:15 +01:00
Marcel Hollerbach c972347c1c efl_ui_focus: add flag to indicate if a child has the focus
this is usefull for later implementations in spinner and fileselector.
A event for this was not added because the result is only really usefull
after a focus operation has been successfull.

Differential Revision: https://phab.enlightenment.org/D7102
2018-11-13 17:01:37 +01:00
Daniel Kolesa fcae7cab27 eolian gen: enable constness generation on property getter impls
This changes a lot of things all across the EFL. Previously,
methods tagged @const had both their external prototype and
internal impl generated with const on object, while property
getters only had const on the external API. This is now changed
and it all has const everywhere.

Ref T6859.
2018-04-17 20:31:55 +02:00
Marcel Hollerbach 78f4babbb5 efl_ui_focus_object:
make the prepare call safe to recursive calls. There is no need to
prepare a item again if it is already in prepare.
2018-04-09 18:27:45 +02:00
Yeongjong Lee 210db8fc5d efl_ui_focus: merge efl_ui_focus_user and efl_ui_focus_object into one mixin
Summary:
focus_user and focus_object are similar classes. by merging them into
one mixin, we can maintain consistency.

Test Plan: make check

Reviewers: bu5hm4n

Subscribers: cedric, Jaehyun_Cho, woohyun, jpeg

Differential Revision: https://phab.enlightenment.org/D5734
2018-01-16 22:39:13 +01:00
Marcel Hollerbach 2e6a08737d efl_ui_focus_object: emit changed event after the flag gets set
otherwise new efl_ui_focus_object_focus_get calls could be confused.
2017-11-17 16:08:14 +01:00
Marcel Hollerbach df81e2f492 efl_ui_focus_manager: ensure the manager is in focus when focus is set
this makes handling of focus easier in elementary
2017-11-15 13:21:22 +01:00
Chris Michael 31ef275388 elementary: Mark unused function parameter as unused
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-10-02 08:19:42 -04:00
Marcel Hollerbach e6c8093d49 efl_ui_focus_object: also implement focus.get 2017-09-30 20:29:07 +02:00
Marcel Hollerbach 3633bb4f5e efl_ui_focus_object: that definition is not needed. 2017-05-04 20:44:42 +02:00
Marcel Hollerbach 357715f091 focus: update object definition
the event is now a bit better, since you only need to subscribe to one
event instead of two, the new state is passed in the event.
2017-04-20 14:38:57 +02:00
Marcel Hollerbach 01f46ae205 efl_ui: introduce a focus manager and sub manager object
The Efl.Ui.Focus.Manager abstracts the creation of a localization graph
and a logical tree. The localization graph is used to find a object
right left up or down of a given object. The logical tree is used to
iterate throuw the containers which are used to build a ui.

Those managers can be used bound to some layer in the ui, so for
example the window is a layer, the content of a scroller is a layer.
With those layers, we can make sure that movements of a scroller for
example just means that this graph of objects in the scroller needs to
be recalculated, and not the complete ui.

The advantage of having this to layer bound datastructures is that you
can easily debug those graphs, since the complete layer of this
managerobject can be calculated completly.
2017-04-20 14:38:57 +02:00