Summary:
none of this should be released as api at this time
ref T7511
Depends on D8085
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7511
Differential Revision: https://phab.enlightenment.org/D8086
Summary:
this is fundamentally incompatible with many display servers and will
not ever be supported outside of legacy
ref T7511
Depends on D8083
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7511
Differential Revision: https://phab.enlightenment.org/D8084
Summary:
most of the eo methods here will be marked beta, preventing them from
generating legacy code
ref T7511
Depends on D8082
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7511
Differential Revision: https://phab.enlightenment.org/D8083
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:
new api should not be bound to legacy values like this
ref T7718
Depends on D8064
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7718
Differential Revision: https://phab.enlightenment.org/D8066
Summary:
this can be mimicked with efl_provider_find as the top widget should
always be efl.ui.win
ref T7553
Depends on D8063
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7553
Differential Revision: https://phab.enlightenment.org/D8064
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: This was missing and caused C tutorials to break build.
Test Plan: ninja install and then try to build a C tutorial
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8096
so blind use of strncpy was again wrong - it limited to the length of
the src not the dest buffer and gcc warnings pointed out this
silliness. so instead go back to strcpy with proper length checks
before and now it's clear that it's correct and not trying to hide
behind strncpy which was wrong.
Summary:
This commits adds dotnet as a supported C# platform for EFL# bindings.
Due to differences between Mono and Dotnet regarding DllImport, the
bindings now are using an imperative approach to load the function
pointers through the NativeModule and FunctionWrapper classes. These
classes handle the dlopen/LoadLibrary and dlsym/GetProcAddress calls.
Also, the previous caching of non-owned strings returned to native code
was removed until further memory checks.
We also had to create workaround for bool and chars in Structs for C#
marshaling. Going through System.Byte instead and Marshaling manually
to their respective types.
In order to actually build efl_mono.dll with dotnet right now,
issue #4782 from Meson should be fixed to make it properly detect and
used the Dotnet compiler. Also use "-Ddotnet=true" when running meson.
Fixes T7394
Reviewers: felipealmeida, vitor.sousa, bu5hm4n
Reviewed By: vitor.sousa
Subscribers: cedric
Tags: #efl
Maniphest Tasks: T7394
Differential Revision: https://phab.enlightenment.org/D8069
Efl.Class (in practice, the return from the *_class_get() functions) can
be used as argument to functions, like in Efl.Object.provider_find and
Efl.Ui.Widget_Factory.item_class(get/set).
This commits adds support by representing Efl.Class instances
as System.Type in the C# API, allowing someone to do things like:
`factory.ItemClass == typeof(MyFramework.MyButton)`
It also supports user-defined classes that inherit from efl classes.
This also fix a bunch of other error regarding object lifecycle and
library initialization.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D8079
efl_content leave the caller in charge of the lifecycle of the object. This means we can
rely on the factory to actually do something with the object before it is destroyed by anyone.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D8091
Summary:
It was marshalling erroneously data into and out of arrays and lists.
Instead of passing data by value (or by address of correct size), it was
stuffing data into IntPtr and trying to parse out afterwards.
This commit changes the binding to use the same approach of plain
Get/Set, with proper overloads.
Reviewers: vitor.sousa, segfaultxavi, felipealmeida
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8057
This also enable to create a tree of Container_Model instead of just one level.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D8046
Summary:
Mono's old compiler (mcs) accepts LL as suffix for longs while Roslyn
(csc) is strict, allowing only a single L.
Test Plan: Run tests
Reviewers: vitor.sousa, felipealmeida
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8061
This patch allow Efl.Composite_Model to return always the same object for the same index.
This way, it make it easier for the Model to always be in sync even if there is multiple
user at any time. The support for dummy object allow the Composite_Model to host more
object than what the source model provide. This dummy model will only have the property
of the Composite_Model and none of the Source model ofcourse.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D8045
This feature was kind of ill-conceived and never worked properly.
Since there isn't enough time to make it work right at this point
and there are no users of it in the API, remove it for now.
It might get added in the next release cycle, in a proper form.
@feature
Summary:
minimize is a commonly used term in the current year. iconify is not.
ref T7511
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7511
Differential Revision: https://phab.enlightenment.org/D8044
Summary:
Support for global constant variables has been recently added to the C# bindings.
This patch fixes doc references so they use the proper name.
This brings the mono doc warnings from 71 down to 29.
Depends on D8048
Test Plan:
Just build and see less doc warnings when building the C# bindings.
Also, doc refs to constants are links now.
Reviewers: lauromoura, vitor.sousa
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8051
Summary: To be added again in a later release after rework in Eolian
Reviewers: q66, vitor.sousa, felipealmeida
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8056
we forgot to generate the legacy function. This no now added back.
ref D8029
Reviewed-by: YeongJong Lee <yj34.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8037
Summary:
Its hard to say why removing such calls are fixing a bug like T7274.
However, it appears that this call causes the min size calculation of
evas to fall apart. This also removes a workarround introduced earlier
to fix this.
This fixes T7274
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7274
Differential Revision: https://phab.enlightenment.org/D8043
Summary:
This fixes compilation on Windows
More precisely edje_cc could not compile emotion edc files, so it was a runtime problem
because of msvcr100 link.
Add more tests than before
Test Plan: compilation
Reviewers: raster
Subscribers: zmike, stefan_schmidt, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7926
Meson from git complains if `install` is set but not `install_dir`.
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D8036
Make sure we are use doubel also also in things like EINA_DBL_EQ(a-b, x+y).
Thanks to Vicent for reporting and Xavi for giving me context.
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8049
This adds support for inlist structs, a special type of struct
that can only be used with inlists. This differs from regular
structs in a couple ways:
1) They are stored separately. Just like structs, enums, aliases
have their own storage, so do inlist structs.
2) They can't be @extern, nor they can be opaque.
3) They are their own type of typedecl.
4) When they contain only one field, this field must be a value
type always, cannot be a pointer.
Like regular structs, they can have arbitrary fields, and they
can have a pre-set free function via @free().
In C, the inlist structs will be generated exactly like ordinary
ones, except they will have EINA_INLIST before the first field.
Other binding generators can deal with them as they wish, for
example to provide high level interfaces to them.
This does not yet do the plumbing necessary to hook these into
the type system, nor it adds generator support.
@feature
Most of classes implements Efl.Container.content_remove are just calling "unpack"
except of "Efl.Canvas.Layout" and "Efl.Ui.Layout".
This patch remove the asymmetrical API and add content_remove API of
"Efl.Canvas.Layout" and "Efl.Ui.Layout" that child can be remove without efl_part
APIs.
ref T7576
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D7913
bqmgr is installed under ${libdir}/ecore_buffer/bin/ on autotools.
and it's not on meson.
this patch modify the install path on meson to a place that autotools installs outputs under
and this contains file name of binary also
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7836
there are differences between meson and autotools.
autotools installs them under ${libdir}/ecore_buffer/modules/module/version/ as module.so
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7837
Summary:
this just prints a error, manipulating the content here is not
permitted. As it is created by edje externals, which are owned by edje.
ref T5719
Depends on D7757
Reviewers: cedric, zmike, segfaultxavi
Reviewed By: zmike
Subscribers: q66, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T5719
Differential Revision: https://phab.enlightenment.org/D7759
Summary:
Homogeneous mode means children are of the same weight and of the same min size
which is determined by maximum min size of cells.
Depends on D7841
Reviewers: Jaehyun_Cho, jpeg, zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7892
Summary:
There are three reasons to refactor layout_update of Efl.Ui.Table.
=== 1. Inconsistency of hint behavior. ===
Some hint property is often not respected. for example, hint_min is ignored in
Table when it is used with hint_max even if hint_weight is 0. hint_aspect is
always ignored in Table.
The ambiguous behavior make it hard to layout widgets in container. of course,
we documented 'it's just a hint that should be used whenever appropriate.' but i
don't think it means that 'hint API is sometimes respected and we also don't
know when that API is respected.'. at least there is rule for consistent
behavior and we should be able to explain why a widget is located here and
why some hint property is ignored.
So, i'll suggest priority of hint property. this refactoring support following
priority.
1) HintMin
2) HintMin + HintAspect
3) HintMargin
4) HintMax
5) HintAspect
6) HintWeight, HintFill
7) HintAlign
ref T5487
Please check with unit test D7840
=== 2. To Enhance usability. ===
Efl.Ui.Table is using homogeneous mode of evas_table which have same columns,
rows size. but i think a table can generally change columns, rows size and
we can provide homogeneous mode option.(D7892)
In this patch
- table columns(rows) min size is decided by maximum size among its cells
width(height) min size.
- table columns(rows) weight is decided by maximum weight among its cells
horizontal(vertical) weight.
Also, pack_align is implemented. it is used if no item has a weight.
=== 3. To remove internal evas_table. ===
This is low priority work. however, i guess is is necessary for lightweight
container widget. there are two size_hint callback to adjust table size and
efl_canvas_group_calculate is called twice when it is resized.
This patch is first step to remove internal evas_table.
Test Plan:
make check
elementary_test -to 'efl.ui.table'
Reviewers: jpeg, Jaehyun_Cho, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T5487
Differential Revision: https://phab.enlightenment.org/D7841
summary_:
pd->logical.child_count is a counter where focusable children do
register themself in the parent if they can be focused or not. With this
we don't need the updating of this internal flag nor the flag itself anymore.
Depends on D8027
Reviewers: woohyun, cedric, Jaehyun_Cho, zmike, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers
Tags: #efl
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8030
summary_:
interest_region_mode makes it possible, that interest_region_get either
returns WIDGET or ITEM coordinates. However, efl-api does not have
items. That means, this can be legacy.
ref T7553
Depends on D8026
Reviewers: woohyun, cedric, Jaehyun_Cho, zmike, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7553
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8027
summary_:
show_region is simular to focus_region. However, it builds up on setting
custom functions per setter to the widget, which are then executed. This
can be solved better by overwriting the interest_region getter, and
using a function like elm_widget_focus_region_show (This function still
needs to find its place in the eo api).
ref T7553
Depends on D8025
Reviewers: woohyun, cedric, Jaehyun_Cho, zmike, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7553
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8026
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
before the disable property was a bit weird. Setting something to
disabled=true will disable all children of the widget that is changed.
However, only the update function of the children will get the false flag,
not the flag itself. Which means, to query the real disabled state, we
need to walk up the parent relations.
With this patch, every change to disabled will go through the disabled
property, which mean, a implementor can just overwrite the disabled
property, and adjust its internal state there. Just be carefull, a set
to disabled=true still might result in disabled=false. This makes the
function on_disable_update unneccesary. Which also cleans up the
Efl.Ui.Widget class.
ref T7553
Depends on D8016
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8017
summary_:
those objects are disabled anyways, because disabled is applied to the
objects in a tree. Which means, subobjects of a widget are disabled
whenever the widget is disabled anyways.
Depends on D8015
Reviewers: cedric, zmike, segfaultxavi, stefan_schmidt
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8016
The new api is moved into either Efl.Ui.Win or Efl.Ui.Layout.
Only Efl.Ui.Layout is interested in the rotation, as this is the only
widget that can actaully apply it to the theme. The value itself however
is unique to the window, which means, the window is the only point where
the rotation is stored, and this is the point, where rotation changes
are brought to the layouts.
ref T7553
Depends on D8014
Differential Revision: https://phab.enlightenment.org/D8015
Summary:
this new API can be used to get a easy to use iterator, to iterate
through all the children of a specific widget.
ref T7553
Reviewers: stefan_schmidt, zmike, cedric, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: woohyun, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7553
Differential Revision: https://phab.enlightenment.org/D8014
Summary:
instead of passing a string which requires reading docs to know which
arbitrary string key=value sets can be passed, use an extensible struct
which contains more easily referenced values
ref T7672
Depends on D8035
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7672
Differential Revision: https://phab.enlightenment.org/D8039
Summary:
api naming in efl uses 'del' when deleting an object and 'remove' when
removing something from an object
ref T7554
Depends on D8034
Reviewers: segfaultxavi, bu5hm4n
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7554
Differential Revision: https://phab.enlightenment.org/D8035
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:
the previous implementation/api had a number of issues:
* "file" property contained both "file" and "key" values
- also performed file loading operation
* "load_error" property which was specific to image objects
* no methods for controlling file loading/unloading
this patch attempts the following changes:
* split "file" property into "file" and "key" properties
- also remove "key" from existing "mmap" property
* remove "load_error"
* directly return error codes from operations
* add "load" and "unload" methods for directly controlling load state
* add implicit file loading if file/mmap is set during construction
* rewrite all efl.file implementations to move file loading into load() method
* rewrite all usage of efl.file api based on these changes
* add C extension functions to mimic previous behavior
ref T7577
Reviewers: segfaultxavi, bu5hm4n, cedric
Reviewed By: segfaultxavi
Subscribers: vitor.sousa, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7577
Differential Revision: https://phab.enlightenment.org/D8018
The elua tests need to create a temporary file, so chdir'ing
first will not work, as the tests source dir is immutable during
distcheck. Therefore, only chdir once absolutely necessary, and
before that make sure that all file accesses are to temporary
ones.
We had it all setup for edje_cc, but missed edje_codegen which is used
in the examples.
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7963
Summary:
PtrToStringAuto may switch between ANSI and UTF16 encodings in a not so
clear way, leading to decoding errors when getting messages from DBus.
Reviewers: vitor.sousa
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8023
Summary: this resolves a considerable number of leaks in unit tests
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8020
Summary:
Make more robust elm_map even if the user wipe is cache directory
or import an already filled tile cache.
@fix T7443
Reviewers: zmike, cedric
Reviewed By: zmike
Subscribers: thierry1970, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7443
Differential Revision: https://phab.enlightenment.org/D7617
Summary:
this requires some internal hackery to preserve legacy compatibility
and correctly translate the single new event into two legacy events
ref T7558
Depends on D8018
Reviewers: segfaultxavi, bu5hm4n
Reviewed By: segfaultxavi
Subscribers: bu5hm4n, segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7558
Differential Revision: https://phab.enlightenment.org/D8019
Summary:
"group" is the name used for interfaces api, so be consistent by using
that naming here too
ref T7584
Depends on D8019
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7584
Differential Revision: https://phab.enlightenment.org/D8021
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
Summary:
if there is a none beta class, then this class should not depend on beta
classes in parameters / event types / return types, parent inherits.
This adds this validation, so we can start to slowly to unbeta more and
more classes.
Reviewers: q66, zmike, cedric, segfaultxavi
Reviewed By: q66
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7999
Summary:
this enables tests with the fallback implementation of EO.
Depends on D7924
Reviewers: stefan_schmidt, cedric, zmike, segfaultxavi
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7931
Summary:
- Fix multiple doxygen-style references:
Doxygen docs refer to types with #foo whereas Eolian uses @foo.
In lots of places the old Doxygen docs have been just copied into eo files
without properly translating references.
- Add some missing descriptions:
Empty doc tags like [[]] should not be used. Please try at least to provide
a single-line comment, and we can improve that later.
There are still lots of empty doc tags, and their authors will be notified.
Test Plan: Only docs change. make doc and DocFX still work.
Reviewers: zmike, cedric, bu5hm4n
Reviewed By: zmike
Subscribers: #reviewers, foo, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7976
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
this is now done via Efl.Object.event_freeze / Efl.Object.event_thaw.
ref T7555
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8011
it was decided that this property should be internal. So now it is
internal.
ref T7555
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8010
the API is a little bit problematic. The API takes events as an
parameter. However, only the hide and show events can be used, because
move for example is not intercepted, which leads to a situation that you
cannot attach a translation animation to the event. Further more,
handling the animations directory instead of pipeing them through events
seems to be a little bit easier as the case study of the previous events
have shown. Further more, we should never ever overwrite the
callback_call function of a eo base object, those methods are an
incredible hotpath, by the time we would have 1-2 animations on a
object, the event submission would be significetly slowned down.
ref T7555
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8009
event_animation of efl_canvas_object, is a little problem, we need to
explictly turn it off, to do a visual state manipulation, just to attach
the animation again. Further more, the animation objects are stored in
static fields, which are not bound to the object. Which means, when two
Efl.Ui.Stack objects are running in parrallel, the animation will look a
little bit wacky, since the object is detached before the animation is
ended.
ref T7555
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8008
it appears that this is a bit unnessesery. Setting an animator to NULL
only causes the animation to be stopped. However, in all cases of these
removed calls, a new animator is setted anyways in one of the next
calls. Which means, the old animator is going to be stopped and removed
anyways. Thus these calls are unnessesery
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8007
there has been a lot of duplications, they are removed now.
The 5 new APIs are there to either show[1] or hide[2] content without animations, show[4] or hide[5] content with animations. The last new function[3] is there to announce the events after content has been removed.
1: _show_content_without_anim
2: _hide_content_without_anim
3: _announce_hiding
4:_show_content_with_anim
5:_hide_content_with_anim
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8006
Summary:
In a previous patch, textpath was modified to use differences between
prev/next values to decide next position. Actually, it improved rendering
quality. But, the modified position could have a big difference from actual position.
It caused a distortion problem.
So, this patch was made for reducing that differences.
@fix
Test Plan:
I'll attach some screenshots of before/after.
1. Modify text in text_ui_textpath.c to see distortion of text. ex) "―――――――――――――――――――..."
2. Build and install.
3. Run
"ELM_SCALE=0.8 ELM_ACCEL=gl elementary_test -to efl.ui.textpath"
Reviewers: Hermet, raster, cedric
Reviewed By: Hermet
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7418
Summary:
This "moved" event is only used by elm_gengrid now.
And it's not something common for all widget classes,
because the event is giving notification when the legacy
item is reordered.
ref T7553
Test Plan: elementary_test "GenGrid"
Reviewers: bu5hm4n, YOhoho, Jaehyun_Cho
Reviewed By: bu5hm4n, YOhoho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7553
Differential Revision: https://phab.enlightenment.org/D8005
Summary:
This make sure that the object returned by children_slice_get are properly
destroyed when the refcount drop to only the parent holding a reference on
it. This make it clear that the user of the api can rely on efl_ref/efl_unref
to actually manage its use of the returned object.
Additionnaly we are cleaning up the created object that we are using to build our own
request inside the Efl.Io.Model and avoid internal leak.
Depends on D7864
Reviewers: felipealmeida, segfaultxavi, SanghyeonLee, zmike, bu5hm4n
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7528
Differential Revision: https://phab.enlightenment.org/D7865
Summary:
This make sure that the object returned by children_slice_get are properly
destroyed when the refcount drop to only the parent holding a reference on
it. This make it clear that the user of the api can rely on efl_ref/efl_unref
to actually manage its use of the returned object.
Reviewers: felipealmeida, segfaultxavi, SanghyeonLee, zmike, bu5hm4n
Reviewed By: segfaultxavi, zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7528
Differential Revision: https://phab.enlightenment.org/D7864
Summary: Using a simple wrapper as event parameters are not ownable.
Reviewers: vitor.sousa
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7981
Summary:
This adds two new complex types, slice<T> and rw_slice<T>. This
is necessary to make the type useful to bindings, as Eina_Slice
on its own says nothing about what it's carrying and that prevents
useful code from being generated outside of C.
@feature
Reviewers: bu5hm4n, segfaultxavi, lauromoura, cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7980
Summary:
it the .pc file of luajit carries linker flags that causes compilation
fails on macos, thus we need to split up the .pc file into our own
dependency, and use it with causion
Reviewers: zmike, cedric, segfaultxavi
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7995
Summary:
this makes it more obvious which events are legacy and makes them easier to remove
in the future
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8002
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
the event now math the pattern of <property-name>,changed.
ref T7571
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7989
the purpose of this API can be improved, and the values there can be
guessed.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7993
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:
Efl.Ui.Relative_Layout is a container which allows you to position and size with
relation to each other.
it is possible to position and size using relation like edje even though
you don't know a edc script.
Position and size can be changed dynamically using widget APIs.
@feature
ref T5487
Test Plan:
make check
examples
elementary_test -to 'efl.ui.relative_layout'
Reviewers: cedric, Hermet, Jaehyun_Cho, zmike, bu5hm4n, jpeg, segfaultxavi
Reviewed By: Jaehyun_Cho, segfaultxavi
Subscribers: segfaultxavi, kimcinoo
Tags: #efl
Maniphest Tasks: T5487
Differential Revision: https://phab.enlightenment.org/D7524
slight tweak to make this more consistent with meaning and docs
ref T7560
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7988
the convention for event naming is to use $property,changed where possible
and to always emit related data with the event to reduce function calls
ref T7558
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7987
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
For one, TESTS_SRC_DIR was missing even though it's present in
meson. For two, top_builddir/top_srcdir are relative paths, which
means the chdir added earlier would result in a wrong apps dir
being pointed to; fix that by making all paths passed into the
tests source absolute.
this existed only to provide the methods for Efl.Ui.Layout_Part and fill
in implementation for some legacy functions which should probably not be
supported going forward
the corresponding methods have been merged into efl_ui_widget and the
legacy functions no longer use eolian-generated implementations
Reviewed-by: WooHyun Jung <woohyun0705@gmail.com>
Differential Revision: https://phab.enlightenment.org/D7899
this patch is for selecting lua interpreter such as luajit, lua51
and in addition, little more changes to unify lua dependency over efl
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7564
this needed to take a seat param (to handle multiseat) and also have a
bool return to indicate whether a pointer device exists for the specified
seat
ref T7584
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7957
there seems to be no other way to directly return the default seat object?
ref T7584
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7956
this method should probably be merged into a gesture class somewhere,
but it's @beta anyway so shuffling it around to reduce spaghettification
of code is fine for now
ref T7584
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7955
The render_post calls evas_object_change if o->changed is true which is added
by commit "36fc2e6 evas image: fix non-rendered preload image.".
But an image could lose chance to render. Please refer to the following.
(1) 1st render_updates_internal
render_post - evas_object_change for image and its parents
evas_object_reset - for its parent
(2) _evas_image_load_post_update - o->preload is changed to true here
(3) 2nd render_updates_internal
evas_render_mapped cannot call render
The reason of (3) would be unchanged parents.
If render_post returns if an image is preloading, then evas_object_change works
for the image and its parents at (2). And finally (3) will call render.
It would be reasonable because render_pre, and render returns as well.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7973
if length of path arguments are longer than PATH_MAX,
there could be a BOF problem potentionally.
this patch fixes it.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7919
Summary:
For clarity, since there are all kinds of maps, including a navigation map
widget.
Also, corrected some misspellings.
Test Plan: make && make check && make examples all work
Reviewers: cedric, zmike, bu5hm4n
Reviewed By: cedric
Subscribers: Jaehyun_Cho, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7564
Differential Revision: https://phab.enlightenment.org/D7974
it appears that this could be emulated with other functions. Plus the
function had the limitation, that no constructors could be used.
ref T7597
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7985
this resolves a few FIXMEs regarding documentation.
Overwriting functions does not help that much, since the documentation
will not be displayed in a IDE, so the documentation of these functions
are moved to the class documentation, which is assosiated with the
object.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7983
this is done inorder to ensure that noone ever thinks of creating theire
own app/loop object.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7982
Summary:
these hints are not strictly size-related, so renaming them is more consistent
with their actual function
ref T7563
Depends on D7968
Reviewers: segfaultxavi, cedric, bu5hm4n
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7563
Differential Revision: https://phab.enlightenment.org/D7977
If legacy implementations are generated, eolian_gen now creates
a separate file for them and includes it. The file name convention
for that is <.c file name without ext>.legacy.<.c file name ext>
or <.c file name>.legacy.c if it has no ext, so for example
foo.eo.c becomes foo.eo.legacy.c and foo becomes foo.legacy.c.
The file is generated assuming there are any legacy APIs contained
inside the .eo file.
so we request a flip so we can do vsync events. the flip event never
comes. i am not sure why it never comes, but we ask and nothing
arrives, and this basically halts all rendering in wayland compositor
mode as we are syncing rendering to vsync (of course). put in a
timeout of 0.05s (50ms) to try ask again if the event never comes and
log the error. this is a pretty useful workaround becauswe having your
entire display freeze is a ... bad thing.
@fix
eolian_mono now generates properties (which simply wrap the setter and getter
methods when both ara available), but they were missing docs, because
properties require a special <value> tag instead of <returns> or <param> which
we are already implementing.
This commit adds <value> tags only if docs can be retrieved from the setter or
the getter methods.
Summary:
There is warning.
```
lib/evas/vg/evas_vg_cache.c: In function ‘_vg_file_save’:
lib/evas/vg/evas_vg_cache.c:185:30: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
tflags = alloca(len) + 1;
```
Previous code of a8d5f275c7 is intended to increase flags length.
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7972
That means, it can only now be used on parameters and struct
fields, never aliased within typedefs. This simplifies the
logic so that we don't have ptr metadata buried several layers
deep.
This adds support for generating reflection functions for
properties. This support is basic for now, supporting only
primitive types and string(shares), it will be expanded later
as required.
@feature
Summary:
these were some pretty efl docs, and I've tried to make them more accessible
ref T7584
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7584
Differential Revision: https://phab.enlightenment.org/D7954
first use consistent ownership (stringshare the strings) and then also
properly dup and pass them and not free null arrays and so on where
they are used
strings often enough are generated e.g. via "%s/%s" or "%i" or similar
etc. ... i have poitned to examples, so move to make all strings
consistently stringshared, fix a bug added to the efl thread code
where it accessed and freed array even tho array was consumed (but not
strings) in the set, and the code used free to consume not
stringshare_del. fix other code and tests to match
EXCTLY the kind of bugs and mistakes with this kind of design that i
said would happen more often just happened...
so this chnage totally threww away all the thread safety and locking
without doing the simple thing of using a shared obcj for the global
env obj to ensure brute force safety at least. fix.
Summary:
efl_alive_get should be a method defined in efl_object.eo, protected by
EFL_BETA_API_SUPPORT while that class is still @beta.
Instead, it is defined in Eo.h, so the BETA guard has to be defined manually.
This was causing some unsighly warnings during "make" and "make check"
(implicit declaration of function ‘efl_invalidating_get’)
Test Plan: make && make check do not throw that warning anymore
Reviewers: zmike, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7958
Summary:
Including these headers does no longer mean that you want to use BETA API.
More and more methods in these libs will come out of BETA and they will
be usable without requiring EFL_BETA_API_SUPPORT to be defined by the app.
This concludes this patchset. Now apps can chose to define EFL_BETA_API_SUPPORT
or not, and they will have access to the requested API subset, but both options
are available.
Depends on D7951
Fixes T7692
Reviewers: zmike, bu5hm4n, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7692
Differential Revision: https://phab.enlightenment.org/D7952
Summary:
Instead of surrounding all the #include "*.eo.h" lines in Efl.h
with #ifdef EFL_BETA_API_SUPPORT, include these files unconditionally, but mark
all classes as @beta in the eo files.
This will allow taking them out of beta one by one as we deem them stable enough.
Otherwise, the current procedure involves moving the #include line out of the
ifdef block, which is cumbersome and messes include order.
Depends on D7950
Fixes T7692
Test Plan: Nothing changes
Reviewers: zmike, bu5hm4n, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7692
Differential Revision: https://phab.enlightenment.org/D7951
Summary:
This allows using Efl_Version without EFL_BETA_API_SUPPORT, which in turn
allows failing when trying to use restricted BETA API with a more meaningful
error message.
The error will now tell you which restricted API you are trying to use, instead
of Efl_Version symbol not found.
Fixes T7696
Depends on D7932
Test Plan:
make && make check && make examples continue working.
Building a BETA example while removing the EFL_BETA_API_SUPPORT define should
tell you which BETA API you tried to use.
Reviewers: zmike, bu5hm4n, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7696
Differential Revision: https://phab.enlightenment.org/D7948
Summary:
This declares the main part of Eo.h as stable, except the domain api for
now. We don't have a user of that API for now, nor do we have bindings
supporting threads, lets wait with this bit until we have bindings for
this, so we can test it.
Further more, this does not stabilize the composition API of
efl_object.eo.h, reason for this is, that we might want to overthink the
solution we have with events, as we might want to forward events per
default.
Depends on D7931
Reviewers: stefan_schmidt, cedric, zmike, segfaultxavi
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7932
Summary:
to move_to_top and move_to_bottom since the previous names seemed to indicate
that the object only moved one step instead of all the way through the top
or the bottom of the stack.
Ref T7560
Test Plan: make && make check && make examples work as before
Reviewers: cedric, zmike
Reviewed By: zmike
Subscribers: kimcinoo, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7560
Differential Revision: https://phab.enlightenment.org/D7934
Summary:
the loop in infinite because of wrong condition.
need to loop while the count of list_index.
Reviewers: cedric, zmike
Subscribers: zmike, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7925
this file was forgotten when initially writing this patch.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D7928
The timeout_reached bool is only used in this function when HAVE_FORK is
available. This is not the case on windows. Eina.h would only be
included with fork available so the Eina_Bool type causes a compilation
fail on windows. Guarding them as the other parts of the function using
it solves the problem.
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D7947
again pointless:
strcpy(dest, x); -> len - strlen(x); strncpy(dest, x, len);
code put in causing new warnings. this kind of "get rid of strcpy" is
actua;;y dangerous as it's more likely a mistake is made along the way
and bugs are added. strcpy's should be reviewed and if ok - left
as-is. doing otherwise makes the code worse, not better and raises
risk. it now also produces warnings at compile time which creates
noise we just shouldnt' have.
Summary:
'layout,updated' event is more suitable for Efl.Pack_Layout which have
layout_update method.
Test Plan: make
Reviewers: segfaultxavi, cedric, Jaehyun_Cho
Reviewed By: segfaultxavi, Jaehyun_Cho
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7906
If index value is not -1, then eet_dictionary_string_add() returns.
Therefore, it does not need to check the index value after that.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7922
non-thread safe functions are used like rand(), strerror().
this patch replace them with thread safe one.
and also this patch contains a change to fix a memory leak problem.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7917
Summary:
This allows using the @beta tag in classes, like this:
class @beta Efl.Foo extends Efl.Bar { ... }
This will surround the class definition in the .eo.h file with an
EFL_BETA_API_SUPPORT #define, equivalent to tag every method and
event with @beta.
Test Plan: Nothing changes since no class uses this tag yet
Reviewers: q66, bu5hm4n, zmike
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7933
Summary:
Eolian adds a per-class BETA guard (like EFL_UI_WIN_BETA) to any method tagged
as @beta. This means that any app (and the EFL code) wanting to use BETA features
has to enable them class by class, which is cumbersome.
This commit replaces the individual guards with the global EFL_BETA_API_SUPPORT
guard, so apps only need to define one symbol to access BETA features.
Any usage of the per-class guards has been removed from the EFL code and examples.
When building EFL the global guard is defined by configure, so all EFL methods
already have access to BETA API.
Efl_Core.h and Efl_Ui.h no longer define EFL_BETA_API_SUPPORT. Apps wanting to
use BETA API have to define this symbol before including any EFL header
(It has been added to the examples requiring it).
Test Plan:
make && make check && make examples still work, but there's a lot less #defines
in the code
Reviewers: zmike, bu5hm4n, q66
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T6788
Differential Revision: https://phab.enlightenment.org/D7924
A New entry is added to _ecore_key_grabs even when no key was grabbed.
Summary: The key grab and ungrab functions should return which keycode was used. Proposed by pascal@ordissimo.com
Reviewers: zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7923
By using the prepare read code properly we can do wayland dispatch of
multiple queues in multiple threads. I'm not advocating we ever do so,
but if a library (perhaps a gl implementation) wants to dispatch its own
queue, and that happens in a separate thread from our event loop, we
probably don't want the world to explode.
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Differential Revision: https://phab.enlightenment.org/D7915
This allows an fd handler to be called after select exits unconditionally.
Our wayland client code needs this to be thread safe, as it needs to
call prepare_read before entering select, and then either read or
cancel_read after select.
Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7914
As in the previous commit explained, we want to get rid of class
functions in eo, and make them just c functions right away.
This commit removes the class parameter from the eo_class_function_set
call, and adjusts the tests to not depend on class functions anymore.
Class functions are now not tested anymore, tests that used them as a
way to test *things* are adjusted to test them now with object
functions, tests that just tested the working of class functions are
dropped.
This fixes T7675.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7902
Until this commit eo did class functions as part of the vtable, which
enabled those functions to be overwritten in classes inheriting another
class. However in task T7675 we decided that this is not really good for
bindings, as most OOP languages do not support this sort of feature.
After this commit eolian realizes class function completly outside of
the vtable, the c-symbol that is the class funciton is now just directly
redirecting to a implementation, without the involvement of the vtable.
This also means a change to the syntax created by eo:
Calling before:
class_function(CLASS_A);
Calling after:
class_function();
Implementation before:
class_function(const Eo *obj, void *pd) { ... }
Implementation after:
class_function(void) { ... }
This fixes T7675.
Co-authored-by: lauromauro <lauromoura@expertisesolutions.com.br>
Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D7901
there is basically no reason for this API. You can only use the API when
you know the class, when you know the class you can also just know the
function to call to get this API.
The reason this API needs to go is that we don't want to use
polymorphism on class-functions.
ref T7675
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7900
Summary: this patch replaces a volnerable function with a safer one.
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7920
Summary:
By using the prepare read code properly we can do wayland dispatch of
multiple queues in multiple threads. I'm not advocating we ever do so,
but if a library (perhaps a gl implementation) wants to dispatch its own
queue, and that happens in a separate thread from our event loop, we
probably don't want the world to explode.
Depends on D7914
Reviewers: zmike, devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7915
Summary:
This allows an fd handler to be called after select exits unconditionally.
Our wayland client code needs this to be thread safe, as it needs to
call prepare_read before entering select, and then either read or
cancel_read after select.
Reviewers: cedric
Reviewed By: cedric
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7914
Summary:
On homogeneous mode, children are of the same weight and of the same min size
which is determined by maximum min size of children.
Depends on D7750
Reviewers: Jaehyun_Cho, zmike, jpeg
Reviewed By: zmike
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7889
Summary:
Current layout_update doesn't consider max hint priority. for example, if it
has hint_max, the size is hint_max value regardless of weight or fill.
moreover, if it has hint_aspect with hint_max, hint_min can be ignored.
(test that aspect(1,3) max(50,150), min(70, 70) then, size has (50, 150))
It seems that hint_max is considered as high priority. however, if hint_min
greater than hint_max, hint_max is ignored.
In order to resolve the hint priority conflict, this refactoring supports
following hint priority.
1) HintMin
2) HintMin + HintAspect
3) HintMargin
4) HintMax
5) HintAspect
6) HintWeight, HintFill
7) HintAlign
ref T5487
Specific unit test is D7463
Test Plan:
make check
elementary_test -to 'efl.ui.box'
Reviewers: jpeg, Jaehyun_Cho, zmike
Reviewed By: zmike
Subscribers: segfaultxavi, zmike, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T5487
Differential Revision: https://phab.enlightenment.org/D7750
Summary:
evas_object_image_pixels_dirty_set(img B, False) means
1. app want to mark image object's data is not dirty anymore
2. app don't want to be called get_pixels callback.
that does not mean image need to be redraw.
evas_object_image_pixels_dirty_set(img B, True) means
1. image object's data is dirty, so image object need to be redraw.
2. app want to be called get_pixels callback.
but pixels_dirty_set(img B, FALSE) function also set o->changed to true,
it cause problem related with rendering
Below case is the example of problem.
1. Smart object A
2. Child image object B
3. app call pixels_dirty_set(FALSE) inside pixels_get_callback
pixels_get_callback is called inside the image object B's rendering.
enlightenment's e_comp_object_render do upper job.
After adding preload fetch,
evas_object_image_render_post can call evas_object_change.
https://phab.enlightenment.org/D7157
evas_render_updates_internal
0. enlightenment call evas_object_image_pixels_dirty_set(img B, TRUE)
o->changed = 1;
evas_object_change(img B)
1. smart obj A is in render_objects
2. evas_object_image_render_pre B, o->change=0
3. evas_render_mapped (Smart A)
3-1. evas_render_mapped (img B)
: enlightenment call evas_object_image_pixels_dirty_set(img B, False)
: o->changed=1
3-2. evas_object_change_reset(img B)
4. pending_change(img B)
4-1. evas_object_image_render_post(img B)
o->changed=1 (3-1 step) evas_object_change(img B)->evas_object_change(Smart A)
5. render_post_reset
smart A is chaged(4-1 step), so, called evas_object_change_reset(Smart A)
###smart A is reset(5 step), img B is changed(4-1 step). after this case,
img B never get change to be redraw.
Reviewers: Hermet, cedric, zmike, ManMower
Reviewed By: Hermet
Subscribers: zmike, ManMower, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7821
This reverts commit a57c7f7510.
I pretty much hate to just revert your revert, but you failed to read my
replies, and failed to understand what i was talking about.
And YES we talked at fosdem about the platform issue, and do you
remember my answer, that back in time this might be the case, today is
different freebsd suppoerts setenv, and for windows we have a setenv
implementation in evil. And yes, vtorri also created a issue how bad and
evil this commit is, however, i still fail to see the issue since setenv
unsetenv and clearenv usages are taken as needed. (T7693)
The ownership question is answered in
https://phab.enlightenment.org/D7516#137367.
Can we please get into a state of technical discussions, and not *oh
shit, i am going to revert this* this has been in review for a long
time, a lots of people have tested it, we discussed things on it, and
there was 3 weeks of no reply from you.
The issues that exist will be dealed with. Feel free to create tasks if
you want :)