Summary:
genlist text_get and content_get send signal for visibled or re-arrange
it's part on edc.
this singal may need to be processed before calculating item edc for
proper result.
we cannot call one only one time in realized function, because, size
must calculated before the realized callback, and user can send
customized signal in their realized callback which also need to be
processed.
Signed-off-by: SangHyeon Lee <sh10233.lee@samsung.com>
Complex types (i.e. list, array, hash, accessor etc.) now do not require
pointers with them anymore (the pointer is implied) and the same goes for
class handles. Eolian now explicitly disallows creating pointers to these
as well. This is the first part of the work to remove pointers from Eolian
completely, with the goal of simplifying the DSL (higher level) and therefore
making it easier for bindings (as well as easier API usage).
@feature
Fixes missing app icons (and others) when using elementary icon theme.
This is required to comply with the fdo icon spec.
Now that we have a fuller icon theme in elementary it's not intrusive
Summary:
There are no methods to close the popup with key down.
So I added the escape key binding to close the popup with escape key.
Test Plan:
1. patch this code
2. delete /home/{user}/.elementary to refresh the config value
3. launch elementary_test -to "popup"
4. click one example of the list and press escape key
5. see closing the popup
Reviewers: cedric, raster, jpeg, Jaehyun_Cho, Hermet
Reviewed By: Hermet
Differential Revision: https://phab.enlightenment.org/D3876
Conflicts:
src/lib/elementary/elm_priv.h
Summary:
Avoid SIGSEV in elm_index_item_sorted_insert when cmp_data_func returns >=0
After deleting eo_item and making it NULL in above case, view(it) is created which resulted in crash.
Test Plan: elementary_test -to 'index 2'
Reviewers: singh.amitesh, jpeg, cedric, raster, Hermet
Reviewed By: Hermet
Subscribers: Hermet
Differential Revision: https://phab.enlightenment.org/D3956
Summary:
In inline function _elm_list_item_free, null check is performed
after accessing its member.
@fix
Reviewers: cedric, Hermet
Reviewed By: Hermet
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3955
Previously events used to use class name as a prefix and ignored eo_prefix
when specified. This is no longer the case. Events follow eo_prefix by default
now. In order to get around this for classes where this is undesirable, a new
field event_prefix was added which takes priority over eo_prefix. If neither
is specified, class name is used like previously.
@feature
We used to have eo_del() as the mirrored action to eo_add(). No longer,
now you just always eo_unref() to delete an object. This change makes it
so the reference of the parent is shared with the reference the
programmer has. So eo_parent_set(obj, NULL) can free an object, and so
does eo_unref() (even if there is a parent).
This means Eo no longer complains if you have a parent during deletion.
Summary:
The default scrollable flag of popup can be different in each profiles.
So I added the scrollable configuration of popup.
@feature
Test Plan:
1. Before
1) elementary_test -to popup
2) resize window to smaller
3) Click 15th item, "popup-center-title + genlist content + 1 button"
4) Then popup will show, but its list is very long, only small part of popup could be shown.
2. After Patch
1) change "popup_scroller" value to 1 in base.src, then run elementary_test -to popup or ELM_POPUP_SCROLLABLE=1 elemantary_test -to popup
2) resize window to smaller
3) Click 15th item, "popup-center-title + genlist content + 1 button"
4) Then popup will show, popup's genlist will be in scroller, so entire popup can be shown.
Reviewers: jaehwan, id213sin, cedric, raster, singh.amitesh, SanghyeonLee, Hermet
Subscribers: Hermet, minkyu, herb, jpeg
Differential Revision: https://phab.enlightenment.org/D3856
all quickpanel APIs were only supported in X.
quickpanel property can be managed by name property.
zone set canbe managed by aux_hint
minor, and major set are not used anymore
This reverts commit 2ddbc5fc9a.
You cannot change default behaviour of released code!
In this way you make applications behave differently on different
efl version.
This patch cleans up various unused variables and unused function
parameters when not building for X11.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
These functions are only used if we are compiled with X11 support, so add
an #ifdef to remove it from wayland builds
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
These handlers are only used when building for X11, not for Wayland,
so conditionally compile them in/out
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
When we compile efl using --with-x11=none, then
_tempfile_new and _tmpinfo_free end up being undefined, however these
functions are used by wayland too so they need to be defined regardless.
@fix
Summary:
Usually, popup have a scroll bar when its content is too long to display in popup's size.
But now, default option is unscrollable.
So change default option and popup's test case.
Reviewers: jaehwan, Hermet, herb
Subscribers: cedric, singh.amitesh, jpeg
Differential Revision: https://phab.enlightenment.org/D3941
Summary:
"clicked" callback must be called when an item is really clicked.
But, toolbar had called it whenever an item was selected.
Even, it could be triggered by "elm_toolbar_item_selected_set()" API.
So, "clicked" callback will be called when only an item is clicked.
Also, it changed confusing names of related internal functions.
@fix
Test Plan: N/A
Reviewers: jaehwan, woohyun, cedric
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3937
Summary:
There is no way to allow/deny the text selection feature.
It is only controlled by disabled state. But, some UX does
not want to allow the text selection on editable entry widget.
@feature
Test Plan:
Run the following test case. You can see "Select Allow" check box.
elementary_test -to entry
Reviewers: tasn, herdsman, cedric, thiepha
Reviewed By: thiepha
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3934
Summary:
genlist content_get sometimes work weird after reusable_content_get pushed.
cached content is shown even content_get function is not exist or
return NULL.
now cache check item_class instead of item style string.
Test Plan: check genlist cache in elementary_test
Reviewers: Hermet, cedric, raster
Subscribers: Jaehyun_Cho, jpeg
Differential Revision: https://phab.enlightenment.org/D3921
Conflicts:
src/lib/elementary/elm_genlist.c
Use eina_strbuf to simplify the data preparer for uri.
This helps remove the complex for loop and also
reduce the memory allocated for uri array.
This also removes redundant checking.
Some APIs are move from eo to legacy as in ab3058d3,
but not all api calls are changed. This causes build break
in mac with cocoa backend.
This patch fixes it.
@fix
If we do drag & drop and then do copy & paste, both _wl_selection_receive
and _wl_dnd_receive are called for one action (dnd or cnp). It is reduntdant.
We only need one data received callback to handle two cases dnd and cnp.
If we do drag & drop and then do copy & paste, both _wl_selection_send
and _wl_dnd_send are called for one action (dnd or cnp). It is reduntdant.
We only need one callback to handle two cases dnd and cnp.
we support different types for DnD, but there is no converters.
This patch adds converters for types, so that we can send
different data for different types.
this really needs a better solution since it results in a blank genlist
item space, with the item itself typically located somewhere offscreen due
to caching
the parent/group item is located after its child items in the list of items,
so if an item is appended to the parent's list of items then it must be
prepended to the parent or else it will end up being in the wrong group
@fix
more fixes for the comically unreviewed revision from elm which continues
to cause bugs months after it was pushed
ref 4c86a66f28876b68e92a90c8f741eed1130dd034 (elm)
ref e88423e994
Efl - efl_model_base changed to use eina_promise
Eio - eio_model use efl_model_base with promise
Eldbus - elddbus models use promise now
Elementary - elm_view_list and elm_view_form use new models with promise
updated all related examples and tests
This fixes the segfault reported by Jack.
The problem was that the object was being reparented and thus
removed from the composition and never added back.
The hicolor fallback requirement is handled by efreet
and the usage of fdo is user specified now not by code.
This means the only (theoretical) way this could be a
problem is if the user removes a theme.
This seems like a good tradeoff to remove the overhead
and enable the apps to switch icons based on config change.
This reverts commit b48d3eb04e.
This patch can be occurred performance issue.
update is needed for only non-homogeneous case.
I'll revert patch and update new patch in phabricator for check.
C++ doens't allow empty size structure, empty structure looks harmful.
I've thought about the solution and this patch is my conclusion.
Because I'm not a big fan of elm_prefs,
if you have any better idea then please fix it on your way.
we will remove elm_icon in the future.(only remain it in legacy)
for this, I added elm_image_icon_set API to the elm_image.
it is same as elm_icon_standard_set.
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