Summary:
In tree mode if parent item is hidden all its subitems should also be hidden.
@fix
Reviewers: Hermet, raster, cedric
Reviewed By: cedric
Subscribers: jpeg, reutskiy.v.v
Differential Revision: https://phab.enlightenment.org/D3918
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
*_visibility_apply() functions are called from each *_visibility_adjust()
function. And it is also called from _elm_scroll_scroll_bar_size_adjust().
So, calling *_visibility_apply() functions after calling
_elm_scroll_scroll_bar_size_adjust() is unnecessary.
@fix
Test Plan: N/A
Reviewers: raster, jaehwan, eagleeye, woohyun, cedric
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3914
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
This renames some APIs from Efl.Pack in order to try and
make them more sensible. Feedback welcome.
Also, most APIs now return bool, where false is quite unlikely
to happen.
This moves the part_box and part_table APIs to a fake object
like was done in Edje Object.
This also adds support a few new APIs to those containers,
so they behave exactly like Edje.Object.
This is another implementation bit of "eo_part".
This removes Efl.Pack_Named which had a terrible name,
removes Elm.Container which should have been renamed
Efl.Ui.Container anyway, and introduces an interface
Efl.Container instead.
The hierarchy tree is now changed as objects don't inherit
from Efl.Container (it's an interface, not a regular class)
but only implement it. Obviously it is very easy to
reintroduce an Efl.Ui.Container parent class if we need it,
but I guess it should have some actual logic. It's basically
part of what Elm.Widget already does.
Some function names have been modified to look better in C
with the efl_content prefix.
@feature
As discussed on the mailing list we're taming the icon_standard code.
This means that icon themes are set by the user not the app.
Deprecate all the icon_lookup calls etc and remove the behaviour.
Add a config panel to elementary_config where the theme can be selected.
The definition of where to load icons is now up to the user
(through the configuration of the icon_theme config value)
rather than being defined in code per-app or even per-component
Summary:
The toolbar's box was resized in _sizing_eval(), _resize_job().
In _sizing_eval(), the box was resized according to its minimum size.
And in _resize_job(), toolbar would recalculate it and resize the box again.
If _sizing_eval() was called after resizing the box properly from _resize_job(),
the box was shrank before calling the next job.
If the box's minimum size is needed for calculation in the job callback,
it shouldn't change box's size before the job callback.
@fix
Test Plan: N/A
Reviewers: jaehwan, eagleeye, woohyun, cedric
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3911
Summary :
when mouse up happens, item must be focused, and after that,
select must be called.
current logic, focus is already called inside the select function
and again focus set is called in the end of mouse_up,
so if user new focused widget inside the select callback,
mouse_up forcely take the focus into the item again.
select callback should comes after the focus callback calls
to work properly.
@fix
Box, Table and Grid now belong to legacy land.
Their Evas counterparts are already not installed anymore,
and Efl.Ui.Box and Efl.Ui.Grid are here to replace those
widgets (note: code was initially copy & pasted).
This should fix installed EO files consistency.
- Children are now contents
- Efl.Pack_Layout is now a separate class and
merges Pack_Engine.
- Removed dumb class Efl.Pack_Item
- Updated docs
- Added pack_ or grid_ prefixes to some methods
Untested yet. Will need to add the common 3 classes:
- standard
- homogenous
- homogenous max_size
And then implement a true custom layout function, that
respects weights in a certain manner (need to define it
clearly).
This fixes the linear API usage with a table.
TODO:
- remove internal table (as it doesn't support layout funcs)
- implement multiple layout functions (regular, homogenous, ...)
This reuses the Evas.Box code, since we are still using the
box internally. The flow layout function is far from perfect
(it works well only with items of same height).
This shows how to use specific layouts provided by EFL.
So, since we don't have function pointers, all the solutions
to reimplementing the layout function are quite convoluted:
1. use events
2. reimplement layout func
3. use an extra object
4. use a generic class (non instanciated)
Promises don't apply here (layout will run multiple times).
Problems:
1. Multiple event callbacks will be called, resulting in
potential performance impact, extra events, etc...
Also, there is no way to define standard implementations
that would be provided by the framework.
2. Reimplementation of a function requires extra EO work
(create an EO class, etc...), doesn't allow on-the-fly
change of the layout method.
3. Probably the best solution is to have an object implementing
the layout. But this means creating an extra object along
with the container.
4. To avoid the extra object, use a class, and reimplement
a @class function. This unfortunately requires extra
EO work.
Solution 4. has been selected, but it's not very nice...
This is only a partial implementation, work in progress.
The grid object should be a replacement for evas and elementary's
table and grid. Only the layout of items inside the container
is different, otherwise the API should be the same.
For now, this widget is based on an evas table but the full
layout logic will need to be reimplemented, eventually.
@feature
This should be the only linear packing container.
This replaces: evas box and elm box.
Edje box needs to be kept around for compatibility,
but it stays an EDC object only (for apps).
Lots of things are still to be fleshed out in this
box implementation:
- Simplify smart object / elm widget code
- Maybe stop using evas object box altogether
- Implement other layout strategies
@feature
Summary :
if item_update happens before the smart calcuate finished,
item can be delayed updated(next frame).
to prevent this issue, if unsolved job is remaining after
smart calc done, call update_job directly and remove job.
@fix
Summary :
after item content fields updated, item and block should be
recalculated about it's height because content size can be updated.
if do not recaculate, items can be overlapped.
@fix
Summary:
If elm_genlist_item_bring_in() is called immediately after appending
item, genlist will not scroll to the last one but stop in the middle.
This patch blocks genlist from scrolling to not calculated item.
Test Plan:
1. Uncompress attached file
2. make
3. ./test
Reviewers: cedric, SanghyeonLee
Reviewed By: SanghyeonLee
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3861
Summary:
When theme is changed by elm_layout_theme/file_set,
_edje_object_file_set_internal will be called internally
and it updates swallowed objects.
Elm.Layout doesn't need to reswallow its child objects.
(with current code, searching cost for real part occurs.)
Reviewers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3898
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This removes the conflicts between the different parents and also
indicates that this is to be used internally by widgets and should
not be confused with the normal user visible parent.
It is an internal attribute that should not be used by people
not implementing widgets. Marking it as protected signifies it
as such.
Since focus_clear removed all the focused traces, focus was not reverted well
whenever win lost and got focus repeatedly.
For instance,
1. set focus to button1
2. set focus to button2
3. win focus out and in
4. remove button2
5. focus is on win not on button1
So, focus logic changes to not clear focused states when win loses focus.
@fix
Summary:
Send order signals for changing item's state according to its order.
It does not affect to existing themes. It sends the following signals.
elm,order,first,item
elm,order,default,item
elm,order,last,item
@feature
Test Plan: N/A
Reviewers: woohyun, jaehwan, eagleeye, cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3883
They are OUT params in real
Side note: the doc for this function miss the x parameter in the generated .eo.h file
...if someone want to look at the doc generation code.
Summary:
When window's size is not enough to show popup, popup resize smaller to show it in appropriate size.
But if window resize larger enough to show popup, popup is locked in small size.
On the contrary to this case, if window resize too smaller, popup has still large size, so popup doesn't display properly.
Test Plan:
1. elementary_test popup
2. maximize test list window
3. click 8th item, "popup-center-title + items + 3 buttons"
4. restore window size
5. close popup, resize window to smaller than popup in 3).
6. click 8th item, "popup-center-title + items + 3 buttons"
7. restore window size
popup size of 4. and 7. is different
Reviewers: jaehwan, cedric, raster, id213sin, singh.amitesh, SanghyeonLee
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3854
Summary:
when calculate real size of action area in _scroller_size_calc,
edje base scale is omitted.
Reviewers: jaehwan, id213sin, cedric, raster, singh.amitesh, SanghyeonLee, Hermet
Reviewed By: Hermet
Subscribers: Hermet, herb, jpeg
Differential Revision: https://phab.enlightenment.org/D3857
Summary:
If x is already less than '0', there is no need to check if it is
bigger than pan_max_x. Likewise, if y is already less than '0',
there is no need to check if it is bigger than pan_max_y.
Reviewers: Hermet, cedric, SanghyeonLee, singh.amitesh
Reviewed By: singh.amitesh
Subscribers: seoz, minkyu, sju27, jpeg
Differential Revision: https://phab.enlightenment.org/D3865
Set and get functions are inconsistent one with the other. When set
function is used with a certain value, one expects the get function
to return this value.
Summary:
evas_common_language_from_locale_* functions kept static pointers
inside of its functions. Once these function was called, it was never reset.
It made big problems for harfbuzz and hyphenation. Also, Elementary
provides elm_language_set() API. Then we need to support it fully.
@fix
Test Plan: Test case for hyphenation is included in Evas test suite.
Reviewers: raster, tasn, herdsman, woohyun, z-wony, Blackmole, minudf
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3864
Summary:
Calculation for item highlight geometry is incorrect when item
is larger than viewport geometry.
This patch adjusts highlight geometry to fit visible item size.
Test Plan: enventor (look "Settings-Text Editor-Font Names" list)
Reviewers: Jaehyun_Cho
Subscribers: jpeg, cedric
Differential Revision: https://phab.enlightenment.org/D3738
the only way to accurately calculate the "evas" size in the engine from
window geometry is to have the size of the frame available to subtract from
window geometry
window geometry is NOT framespace--framespace is the entire csd region, possibly
containing a shadow, and window geometry is explicitly the region occupied by the
window, ie. not the shadowed part.
not my ideal solution to the synchronization issue here, but I guess this is a
benefit of the unified tree
fix T3396
in the case where an icon existed upon having an icon object set, the previous icon
object would be orphaned while still being visible. the new icon would then never
be set into the csd.
@fix
this was broken if the compositor unset fullscreen without being prompted by
the client (eg. ctrl+alt+f). it also created timing differences for csd calcs based
on when the fullscreen call occurred in the render cycle
@fix
Efl.Flip is now the enum, the interface is Flipable.
We could even use names like Efl.IFlip a la Java.
eo_prefix is used to have pretty names in C. legacy: null
is removed from the enums. orient_x0 is removed and only
defined in C with #define
Summary:
Implement common interface efl_ui_progress and inherit slider and progressbar from common interface.
Currently legacy APIs will also call interface functions and later it can be deprecated.
This interface will be moved to EFL in src/lib/efl/interfaces when elementary is merged into efl.
Test Plan:
elementary_test -to 'slider'
elementary_test -to 'progressbar'
Reviewers: singh.amitesh, raster, tasn, felipealmeida, woohyun, cedric, jpeg
Subscribers: saurabhbunty, alok25
Differential Revision: https://phab.enlightenment.org/D3759
A major typo (hard to find with the naked eye) was present in
elm_config's list of text & color classes. See D3487.
I'm pretty sure this feature has not been used at all.
warning: missing field 'desc' initializer
[-Wmissing-field-initializers]
Solution: use gcc extension to init structs with {}.
This is a bit ugly, but having too many warnings leads to
ignoring them and not noticing valid ones.
The warning is triggered because the first member of Eo_Event
is not a primitive type (it's a struct _Eo_Opaque *).
Summary:
Added flip and orientation interface and used them in evas_image.
Removed efl_image_orientation_set API and used efl_orientation_set and efl_flip_set API.
In implementation part, converted enums back and forth in order to keep current implementation as it is.
Test Plan: src/examples/evas/evas-images5.c
Reviewers: singh.amitesh, raster, tasn, herdsman, woohyun, cedric, felipealmeida, jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3844
this now allows vpath files to be looked uop using app directory
resources like @app.data/file.jpg ... if the object uses vpath to do
its hunting.
@feature
Summary:
Popup has the main layout to show popup view, but it is not resize object of popup.
As the result, we cannot emit the signal to the main layout when we want to change the state of the popup.
So, popup inherited a layout signal emit and redirect the signal to the main layout.
Test Plan:
1. add the custom signal in elm/popup/base/default layout
2. send the custom siganl in application code
Reviewers: woohyun, raster, cedric, Hermet, singh.amitesh
Reviewed By: singh.amitesh
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3852
Summary:
There are calls of elm_progressbar_pulse (start/stop pulsing), but they have
no effect because progressbar is not in pulse mode
@fix
Test Plan:
open elementary_test fileselector and navigate through folders
Wheel progressbar in right up corner should have pulse animation
Reviewers: cedric, raster, reutskiy.v.v
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3843
adds the hold flag when the keystroke is used.
If this is not done a backspace is used for reducing the search-string
AND for going into the top level directory.
Setting the no-render flag on an elm widget had no effect,
as it was not properly propagated to its children. This should
fix that, but I'm not a fan of the solution.
Fixes T3371
Slider can have two indicators if enabled and user can select
range values.
phab: https://phab.enlightenment.org/D3822
Test Plan: elementary_test -to slider
@feature
Change-Id: If4ca74de6f5a94531ebd21750d52704b2b02afee
so there was/is a case where when an elm window is resized from
outside, it will happen to use the last known size (maybe old) and end
up requesting a resize to that size again itself. it basically
triggers its own resize request as a result of resize events. this
fixes that and stops the loop
@fix
this resolves the issue of all elm windows being created at 1x1 and
immediately resizing to another size after being shown, causing all
kinds of failures in various environments
@fix