Commit Graph

52 Commits

Author SHA1 Message Date
Pawel Aksiutowicz cb2ba05675 elementary: fix typos
Reviewers: stanluk, lukasz.stanislawski

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5494
2017-11-20 11:54:52 +09:00
Marcel Hollerbach 19cb57d914 efl_ui_focus_manager_calc: efl_wref_del deletes the wref
A happy thank you goes to the doc for leaving this trivial peace of
information undiscovered!

Followup commit will fix this
2017-11-17 16:08:14 +01:00
Marcel Hollerbach ffca5284ae efl_ui_focus_manager:do not followup if we have not changed candidate
_followup_previous_direction should only be called if there was a real
change to the redirect. In was happening that we have not changed the
focus but called _followup_previous_direction, which lead to weird focus
changes.
2017-11-17 16:08:14 +01:00
Marcel Hollerbach 4086f18ebf efl_ui_focus_manager_calc: error if a element is not registered yet 2017-11-17 16:08:14 +01:00
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