Summary:
historically there have been two methods of calculating sizes in elm:
* elm_layout_sizing_eval
* evas_object_smart_calculate (now efl_canvas_group_calculate)
the former was used to set size hints on widgets, while the latter was
used to perform internal size calcs for the widget. for things to
work correctly, these functions had to be triggered in just the right
order at just the right time. many hard-to-fix bugs related to widget
sizing over the years have been the result of this split
this patch removes elm_layout_sizing_eval implementations so that all
widgets perform both internal size calcs and size hint setting all
in the same function, ensuring that these are always in sync
the result is that in the vast majority of cases, far fewer recalcs
happen for widgets, and they are quicker to achieve their final size
Depends on D9438
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl_widgets
Maniphest Tasks: T8059
Differential Revision: https://phab.enlightenment.org/D9439
Summary: Avoid unnecessary operations on unrealized item when item field update is called
Test Plan: Call item_field_update on an unrealized item
Reviewers: cedric, raster, SanghyeonLee
Reviewed By: SanghyeonLee
Subscribers: #reviewers, rajeev.jnnce, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9019
Summary:
this flag is accessed by other components (e.g., focus) during the event
and so it must reflect the emitted event
@fix
Depends on D8993
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8994
Summary:
there is no need to recalculate any genlist attributes if the genlist is
dead
@fix
Depends on D8992
Reviewers: cedric, bu5hm4n
Reviewed By: cedric, bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8993
Summary:
This commits prepares the tree in order to mess with the events in the
Efl.Ui.Clickable event. Events which have been emitted in a none legacy
widget, are now emitted either with evas, when the widget is legacy due
to inheritance. Or via the normal event and normal event functions.
In case the widget is a legacy only widget (not used at all in the new
api), then the events are for now emitted with
evas_object_smart_callback_call.
Cases where event handlers have been added to legacy widgets, smart
events are now used, and not the eo one anymore.
ref T7844
Depends on D8813
Reviewers: cedric, zmike, segfaultxavi
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7844
Differential Revision: https://phab.enlightenment.org/D8816
since commit a1addad60e, To add myself as a sub object of parent object will be
done in Efl.Ui.Widget constructor.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8280
this resolves a lot of cases where focus_highlight API was called on a
object, which is not a efl_ui_win object. With this patch we ensure that
the object is always a window.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8476
Summary:
we want to rename it, and this would break legacy behaviour, so better
this way.
Depends on D8412
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8413
Summary:
This reverts commit f629f11bed.
This breaks legacy events. As the selected event is used in legacy
widgets. Also this commits mixed up two different concepts, selection in
a entry etc. and selection of a item.
Depends on D8411
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8412
this is a legacy header so it can't include (non-installed) eo headers
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8229
this takes the current generated output from eolian for legacy code in
efl and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree
ref T7724
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8210
this takes the current generated output from eolian for legacy code in
efl and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree
ref T7724
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8171
this takes the current generated output from eolian for legacy code in
evas and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree
ref T7724
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8131
Summary:
now that the error codes have been change to be compatible with eina_error,
this can be removed and will work through eina_error naturally
fix T7718
Depends on D8067
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7718
Differential Revision: https://phab.enlightenment.org/D8068
Summary:
this swaps the values of "no error" and "error" in order to maintain
consistency with the rest of efl where the zero value means "no error"
Depends on D8060
Reviewers: cedric
Reviewed By: cedric
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_api
Differential Revision: https://phab.enlightenment.org/D8063
summary_:
the widget implementation just redirected calls from efl_ui_widget to
efl_ui_win. Which makes the properties unncessesary on the widget. This
commit moves them now to the window.
The legacy implementation of the window can now go away, as this is
taken care of by eolian directly.
ref T7553
Depends on D8017
Reviewers: woohyun
Reviewed By: woohyun
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7553
Reviewed-by: WooHyun Jung <woohyun0705@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8025
Summary:
most widgets inherit from layout to provide implementations for common
functionality such as content/text/theme get+set.
one of the things that layout also brings into its inheritance hierarchy
is efl.file and implementations for its methods. this becomes a problem
when the widget which inherits layout also wants to provide implementations
for efl.file methods (e.g., entry, which uses efl.file to load text files)
as it will result in calling all of the efl.file implementations up the
chain.
in the case of entry, this could result in the 'file' property eventually being
set to the current theme file in use by the entry's layout object, and then the
entry will attempt to autosave its content to the default theme file when it is
destroyed, corrupting the theme file and breaking everything
to solve this:
* efl.ui.layout remains an instantiable class which implements efl.file
* efl.ui.layout_base is the abstract class which provides all the methods of layout
but should be inherited by all widgets which want to implement efl.file functionality
Depends on D8018
Reviewers: bu5hm4n, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Differential Revision: https://phab.enlightenment.org/D8032
Summary:
tooltip_window_mode_set returns input disable value not a successibility of API actions.
when user set window_mode to false, it must return false regardless of item view existence.
Reviewers: Hermet, woohyun, eagleeye, cedric, zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7912
focused_item is only used in item containers. This API is now moved into
a widget item container, which *can* have a focused item.
ref T7553
Reviewed-by: WooHyun Jung <woohyun0705@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8013
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
focus,changed is already used in efl_ui_focus_object, which makes sense
there. However, here we listen for the property focus_manager, thus its
renamed to focus_manager,changed.
ref T7571
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7990
Summary:
this interface only contains a single event which is implemented only by the
canvas object
ref T7561
Reviewers: cedric, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7561
Differential Revision: https://phab.enlightenment.org/D7905
Summary:
elm has some cases that resize_obj is not the group object.
That case, efl_canvas_group_need_recalculate_get() prints
annoying type-check errors.
Reviewers: #committers, SanghyeonLee
Reviewed By: #committers, SanghyeonLee
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7557
This implements the behaviour in case no item is yet focused, but the
genlist is focused.
ref T6805
Reviewed-by: YeongJong Lee <yj34.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7452
this ensures that if there is no focused item, that at least the
container is focused. This leads to the fact that the elm_genlist
/elm_gengrid is refocused when a window is unfocused and focused again.
Reviewed-by: YeongJong Lee <yj34.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7451
this was forgotten before. However, now the correct parents are returned
This is needed in order to have the child_focus property propagated
correctly accross the parent chain.
Differential Revision: https://phab.enlightenment.org/D7266
Summary:
Efl.Ui.Theme class is required to support language bindings.
Efl.Ui.Theme works based on current elm_theme features.
This patch fixes T7357.
Reviewers: segfaultxavi, cedric, lauromoura, woohyun, zmike, SanghyeonLee
Reviewed By: segfaultxavi, SanghyeonLee
Subscribers: SanghyeonLee, herdsman, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7357
Differential Revision: https://phab.enlightenment.org/D7244
Summary:
Efl.Ui.Layout namespace is removed to keep consistency with other
widgets.
Consequently, "Efl.Ui.Layout.Object" is renamed to "Efl.Ui.Layout" and
"Efl.Ui.Layout." is renamed to "Efl.Ui.Layout_".
Reviewers: segfaultxavi, bu5hm4n, cedric
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers, SanghyeonLee, woohyun
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7291
In eo there is a difference between legacy events and normal events.
However, when a legacy event, that is called "focused" is emitted, the
event EFL_UI_FOCUS_MANAGER_FOCUSED is emitted on those objects. This
leads to bugs and unexpected results in elm_scroller, and additionally
this problem blocks work that is done right now to add those "focused"
event calls to gengrid.
Differential Revision: https://phab.enlightenment.org/D7099
Summary:
item show and bring can be processed with zero-sized pan.
item's coordinate will be calculated with this zero-sized pan,
so target position of scroll region bring in is not proper.
it occurs wrong result of SCROLLTO_MIDDLE and SCROLLTO_BOTTOM cases.
now we check pan size, and if less than 1, deferred call.
Test Plan:
please test with attached file.
./main 8 4 : 8th item go to middle
./main 8 8 : 8th item go to bottom
(bottom case may need D7035 as precede patch)
{F3311262}
Reviewers: Hermet, eagleeye
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7037
Summary:
there are buggy actions in the item show api,
when the list is launched, scroll to far distance item.
the reason is item_scroll is called before it's block is fully
calculated in calc_job().
the origin patch of cause the issue is
f6b66cc1d3
by raster in 28 Nov, 2013
but we already do some extra works in calc_job(),
so the code is not necessarily called in queue_process().
more detail descriptions :
mainly this caused by block width size,
so the normal case block width is zero, and item_scroll() will be dismissed,
and deferred action in calc_job(), but in issue case,
block width is already been set, so it can scroll the item directly though
they aren't properly calculated yet.
most cases block was generated in the same queue processing so width size is
not exist, but in issue cases, they re-using the block which was already been
generated by previous queue processing, so the width size is already exist,
but height is not properly calculated yet.
we could move the block height calculation and min/max calculation
in the queue processing, but I'm afraid to face side effect,
so removing item_scroll() call is best option that I got.
Test Plan:
I'll upload some sample file my_genlist_example_4.c,
so please do a test with this.
issue is reproduced very rarely, but I could see the issue within 20 times try.
{F3300793}
Reviewers: raster, eagleeye, Hermet, singh.amitesh, #reviewers
Reviewed By: Hermet, #reviewers
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6952
Summary:
ELM_GENLIST_ITEM_SCROLLTO_BOTTOM condition is considered in coordinate_calc,
but not considered in item_scroll which calls deferred for item calculation.
so put the proper condition for ELM_GENLIST_ITEM_SCROLLTO_BOTTOM in item scroll.
Test Plan: elementary_test
Reviewers: Hermet, eagleeye
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7035
Summary:
if the item is deleted during a focus callback then the remainder of this function
must be skipped in order to avoid crashing when attempting to access deallocated
memory
ref T7292
Reviewers: SanghyeonLee
Reviewed By: SanghyeonLee
Subscribers: cedric, #reviewers, #committers
Tags: #efl_widgets
Maniphest Tasks: T7292
Differential Revision: https://phab.enlightenment.org/D6831
Summary:
failing to unset this prevents callbacks from being re-added when the item
is next realized, resulting in items which cannot be interacted with
ref T7292
Reviewers: SanghyeonLee
Reviewed By: SanghyeonLee
Subscribers: cedric, #reviewers, #committers
Tags: #efl_widgets
Maniphest Tasks: T7292
Differential Revision: https://phab.enlightenment.org/D6832
Summary:
there was a case when a block could be realized while a item that is
realized was brought from one block to the this new one. The block now
is simply realized using api instead of just setting the flag, this sets
the correct focus registrations. While fixing this the error of double
regiration of items came up, this is also fixed by unregistration and
reregistration in the correct block.
fix T7247
Reviewers: zmike, SanghyeonLee, YOhoho
Reviewed By: zmike
Subscribers: Hermet, cedric, #committers
Tags: #efl
Maniphest Tasks: T7247
Differential Revision: https://phab.enlightenment.org/D6737
Summary:
this got replaced by the none composition implementation and is not
required anymore.
Depends on D6737
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6752
Summary:
the cache simply moved the objects to -9999 -9999 while leaving them
visible and focusable. Hiding them does not work since edje makes it
visible all the time again. Making them unfocusable fixes this.
Depends on D6752
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6753
itb-items is Eina_List, not Eina_Inlist. this crashes due to wrong type
use
ref D6720
fix T7246
Differential Revision: https://phab.enlightenment.org/D6736