Marcel Hollerbach
de084292e0
efl_ui_focus_manager: unset the redirect chain once a redirect is set
...
this prevents the manager from having a redirect chain while not even
beeing used by the root manager
2017-11-15 13:21:22 +01:00
Marcel Hollerbach
7e227161b9
efl_ui_focus_manager_calc: correct handle focus when redirects are set
...
so we dont have two focused elements
2017-11-15 13:21:22 +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
Marcel Hollerbach
07cb2d2dcd
efl_ui_focus_object: document the bahaviour of the manager property
2017-11-15 13:21:22 +01:00
Pawel Aksiutowicz
e2ad1469a5
focus: Some typos for efl_ui_focus_manager fixed
...
Reviewers: stanluk, lukasz.stanislawski
Subscribers: lukasz.stanislawski, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5433
2017-11-08 15:16:04 +09:00
Jean-Philippe Andre
6cea4993e0
elm: Don't do anything before construction
...
Obviously ui.win is still the ugly exception.
2017-11-07 14:43:22 +09:00
Chris Michael
5332f3355b
efl-ui-focus-manager: Remove set but not used variable
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-11-02 10:05:56 -04:00
Marcel Hollerbach
f2da8a7f54
efl_ui_focus_manager: remove strange naming of a function
...
this is just normal next or prev, the prepare is done on the caller side
now
2017-11-01 15:26:52 +01:00
Marcel Hollerbach
08d104498c
efl_ui_focus_manager: improve debug informations
2017-11-01 15:26:52 +01:00
Marcel Hollerbach
1fcb357a66
efl_ui_focus_manager_calc: remove unused struct
2017-10-27 17:33:47 +02:00
Marcel Hollerbach
1c43f56fb9
efl_ui_focus_manager_calc: fix warnings
2017-10-27 17:33:04 +02:00
Marcel Hollerbach
5b8fbb7c69
efl_ui_focus_manager_calc: return last object when unfocusing last
...
this makes code easier, and fixes a bug where the wrong last element is
taken.
2017-10-27 17:08:08 +02:00
Marcel Hollerbach
1252b5ac29
efl_ui_focus_manager: correctly handle subitem directions in a redirect
...
in default focus just sets the focus to the first item in the redirect
manager, we now reset that back and move the focus to the last element
of a item.
2017-10-27 15:29:58 +02:00
Marcel Hollerbach
acb469439f
efl_ui_focus_manager: the FOCUSED event now carries the last focused
...
object
This is usefull to react on focused events
2017-10-27 12:06:40 +02:00
Marcel Hollerbach
3139b0f7f5
efl_ui_focus_manager: do not enter Nodes with redirects
...
we always want the redirect on the lowest level.
2017-10-27 12:06:40 +02:00
Marcel Hollerbach
3e726c364b
efl_ui_focus_manager: reset when a redirect is unset
...
this keeps the history clear
2017-10-24 17:37:31 +02:00
Marcel Hollerbach
f79b1b9826
efl_ui_focus_manager: new api
...
Can be used to fetch a focusable widget that has child as parent.
2017-10-20 17:21:57 +02:00
Marcel Hollerbach
8a0cf1418c
efl_ui_focus_manager: unfocus even logical elements
...
entry for example is here a specialcase since it registeres itself as
logical with a redirect manager that is then empty and only has a root
element, which is again itself.
2017-10-20 11:54:08 +02:00
Marcel Hollerbach
5e96d6e378
efl_ui_focus_manager_calc: really free all direction
...
i must have been have asleep when i wrote this, we need to iterate all
directions not only to the max id of 4
2017-10-19 15:20:59 +02:00
Marcel Hollerbach
2e26d7a6cf
efl_ui_focus_manager_calc: move the debug output in there
...
reduces the load of debug messages, and the debug messages are now only
emitted from the manager that is not the redirect. And the real elements
that are focused are printed
2017-10-19 15:20:59 +02:00
Marcel Hollerbach
67234dcde1
efl_ui_focus_manager_calc: reimplement move to be more compact & small
...
this fixes a bug when a redirect was unset while going the prev
direction.
2017-10-19 10:04:59 +02:00
Marcel Hollerbach
6956dfc7a6
efl_ui_focus_manager_calc: put every element on the focus stack
...
move the addition to the focus stack to the general path. This means
every element is now on the focus stack.
2017-10-19 10:04:59 +02:00
Marcel Hollerbach
d701597eb9
efl_ui_focus_manager_calc: move unfocusing the last element into its own
...
function
2017-10-19 10:04:59 +02:00
Marcel Hollerbach
0220418b84
efl_ui_focus_manager_calc: check if we are already focused earlier
...
if we dont do that we may unset a redirect just to set the same redirect
again.
2017-10-19 10:04:59 +02:00
Marcel Hollerbach
45b4cdee19
efl_ui_focus_manager_calc: maintain focus when focused element is
...
unregistered
this should fix T6216.
2017-10-16 11:02:13 +02:00
Cedric Bail
6770f9b8a3
elementary: we actually do not use that object.
2017-10-13 12:58:01 -07:00
Marcel Hollerbach
6acaf6350c
efl_ui_focus_object: introduce prepare_logical
...
with this call a registered logical item could prepare itself for a
deeper traversal
2017-10-13 12:31:48 +02:00
Marcel Hollerbach
441776f7cf
efl_ui_focus_manager_calc: make sure to not access out of bounds mem
2017-10-13 11:52:58 +02:00
Marcel Hollerbach
247d203c68
elm_main: port to new focus api
2017-10-10 19:28:48 +02:00
Marcel Hollerbach
8453ebfe4e
elm: move the focus direction definition to general
...
and remove the old definition
2017-10-10 19:28:48 +02:00
Marcel Hollerbach
991b7696b6
efl_ui_focus_manager_calc: delete items if they are deleted
2017-10-10 19:28:47 +02:00
Marcel Hollerbach
837f83114a
efl_ui_focus_manager_calc: we dont need the explicit root handling,
...
that is done later in line 1205
2017-10-09 16:29:28 +02:00
Marcel Hollerbach
282883ff9c
efl_ui_focus_manager_calc: focus a child if a logical is focused
...
If you call focus_set(m, o) where o is a logical child, then the focus
will go to any none logical child of o, or if there is nothing in the
children of o, then the focus will remain on the now focused element.
2017-10-09 13:10:51 +02:00
Marcel Hollerbach
e5d1c1f195
Revert "elm focus manager - dont leak child lists when updating focus order"
...
This reverts commit bd6dcbb044
.
This was not fixing the issue, just ducktaping over a bug in eolian, the
bug is now probebly fixed in eo / eolian.
2017-09-29 11:28:15 +02:00
Carsten Haitzler
2ac1323fac
efl ui focusable - remove pointless check of ptr already checked
...
coverity fix CID 1381492
2017-09-29 09:00:43 +09:00
Carsten Haitzler
1dcac1853d
efl ui focus - fix coverity complaints about derfer before null check
...
indeed there was a child cnull check after dereferencing the child...
so check completely. fix CID 1379925
2017-09-28 15:28:00 +09:00
Jean-Philippe Andre
f3eff6eb3e
efl: Introduce Eina.Rect and switch EO APIs to it
...
It's a complex struct but defined in EO as a simple struct. ABI-wise
it's equivalent to Eina_Rectangle. Some macros that use Eina_Rectangle
also work on Eina_Rect out of the box, most of the code dealing with
x,y,w,h will require no modifications either.
But Eina_Rect provides direct access to a size or position 2d component,
as well as the usual x,y,w,h. The field "rect" is provided as a
convenience for code dealing with both Eina_Rectangle and Eina_Rect. We
may or may not require it.
Note: Size2D could use unsigned values but I have spotted a few places
in the code that actually use -1 to indicate invalid size (as opposed to
0x0).
@feature
2017-09-18 13:22:52 +09:00
Marcel Hollerbach
3af81932b0
efl_ui_focus_manager: present a slightly better error message
...
with this and the backtrace you can probebly figure out if you just
registered the same widget twice for different types
2017-09-02 20:06:15 +02:00
Marcel Hollerbach
ab2b9d9a3c
efl_ui_focus_manager_calc: do not swallow a focus event
...
if we have been redirecting before, we would have lost that event due to
the element here beeing at the top of that focus stack
2017-09-02 20:06:15 +02:00
Jean-Philippe Andre
9633023511
focus: Fix shadow warning
2017-09-01 10:09:37 +09:00
Carsten Haitzler
bd6dcbb044
elm focus manager - dont leak child lists when updating focus order
...
REALLY fix T5800 by duplicating lists rather than taking ownership
@fix
2017-08-31 17:34:30 +09:00
Carsten Haitzler
d0aefa87bf
focus manager - fix spelling of variable
...
saved_order not safed_order
2017-08-31 16:45:49 +09:00
Marcel Hollerbach
0b3a14a387
efl_ui_focus_manager_calc: only focus none NULL candidates
2017-08-30 22:39:52 +02:00
Marcel Hollerbach
ea5b0bdfde
efl_ui_focus_manager: make logical_end work better
...
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.
2017-08-30 22:39:52 +02:00
Marcel Hollerbach
245a04cc44
efl_ui_focus_manager: reset focus stack once we are changing redirect
...
ref T5923
2017-08-30 17:55:51 +02:00
Marcel Hollerbach
190cce71f5
efl_ui_focus_manager_calc: fix the class check of the redirect
...
this came up with a huge load of errors, i havent noticed them last
night. Sorry.
2017-08-11 10:32:59 +02:00
Marcel Hollerbach
df3d0e3d7b
efl_ui_focus_manager: make focus a property
2017-08-10 20:56:04 +02:00
Marcel Hollerbach
d4cd85aa55
efl_ui_focus_manager: split this of tinto a class and a interface
...
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
2017-08-10 20:55:50 +02:00