Summary:
Delaying the unregistering here ensures that there is not focus set call
while a object is beeing registered in the focus manager.
ref T8081
Reviewers: zmike, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8081
Differential Revision: https://phab.enlightenment.org/D9513
setting the order is a little bit expensive, this performance optimizes
order setting in the focus manager. We don't need to set the order each
time something is registered, it is enough to set it once we need the
correct order.
We don't need to evalulate the state in the Manager_Root_Focus if the
rect is not registered. If its not, then another new element cannot
cause the rect to be registered.
Reviewed-by: YeongJong Lee <yj34.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7450
This ensures that the adapter part is part of the viewport elements and
border elements. This is done in order to support cases where a
elm_scroller content is not focusable. Before the element was not
correctly in viewport, and so not correctly registered.
ref T6804
Differential Revision: https://phab.enlightenment.org/D7364
Until recently we have been only registering the border elements of the
graph, (so only the elements that don't have a neighboor). However this
lead to the situation that a scroller that is scrolled into the middle
(so not the x nor the y axis is scrolled to the max), is not accessable.
Now, we register all elements that have a neighboor in the outside.
The patch in the test suite is required in order to provide the correct
geometry to the implementation of efl_ui_focus_manager_sub.
Differential Revision: https://phab.enlightenment.org/D7360
Summary:
this object takes a internal dummy object, and thus the properties
should be mirrored to the real root.
The focus property on the root of the manager is required that the outer world really sees that the focus is on the root or not.
Depends on D6506
Reviewers: zmike, devilhorns
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6510
registering and unregsitering caused a few issues.
- Relations are recalculated even if they should not be
- We unfocus a element just to refocus it again
- We loose any iinformation about custom chains that have been set meanwhile
This fixes it
the manager objects are build on the assertion that registered elements
are returning the manager they are registered on if
efl_ui_focus_object_manager_get is called.
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.
it turns out that it is useful and needed (for future patches) to
request moves for nodes that are not focused currently. It is also
needed to request a move that might end up in a logical node.
Summary:
we have to check whether all of descendant are none_logical.
this fixes T6800
Test Plan:
1. elementary_test -to ctxpopup
2. Click 'Ctxpopup with user content'
3. Try focus ctxpopup content(button) using arrow key.
4. Check that the content is focused (you can move scroll bar)
Reviewers: bu5hm4n
Subscribers: raster, cedric
Maniphest Tasks: T6800
Differential Revision: https://phab.enlightenment.org/D5856
This reverts commit c6ce04e48f.
OK. I bisected and found that this is ythe root cause for 2 pretty
chunky bugs. Reverting this fixes T6870 and fixes T6871.
so that's 2 segvs in existing uses and even olne (elm config) ships
with efl. Having a look at the diff doesn't jump out what is wrong
here, but the best course IMHO is to take this patch and put it back
into review again... :)
Summary:
we have to check whether all of descendant are none_logical.
ref T6800
Test Plan:
1. elementary_test -to ctxpopup
2. Click 'Ctxpopup with user content'
3. Try focus ctxpopup content(button) using arrow key.
4. Check that the content is focused (you can move scroll bar)
Reviewers: bu5hm4n
Subscribers: cedric
Maniphest Tasks: T6800
Differential Revision: https://phab.enlightenment.org/D5856
the focus rectangle is basically just a normal efl.canvas.rectangle, but
with the focus interface implemented.
This fixes alot of errors which gets called when the root_focus manager
is used, with the submanager as mixin.
I kept the safety error message for easier debugging.
Test scenario:
elementary_test -to "Window Inline"
Click on an entry. Press Shift+Tab.
Ping @bu5hm4n
it turns out that we should also repsect logical elements that are
having a redirect_manager, since they are more at the "end" then a
potential regular node.
The user now needs to handle the logical_end call on this manager, or
handle at all what he wants to do with this information.
efl_ui_win now handles it in the way that it just focuses that logical
node, (which results in the redirect manager beeing set, then calling
again logical_end on that manager. Repeating this until we have finally
found a regular node that does fit out needs.
it turns out to be very handy to have a interface for the moving and
border elements, that is unconnected to the way of how widgets are
registering themself.
This for example enables us to get a simple focus manager that just
redirects the call into a internal 2 dimensional data struct