AgeCommit message (Collapse)Author
2019-02-13Revert this as it should not have been pushed yetChristopher Michael
Revert "ecore_main: Add ECORE_FD_ALWAYS flag" This reverts commit b5e90ebe0d49edc405e9a5ab60b3c1e7ea65a5fa.
2019-02-13ecore_wl2: fix a non-thread safe call.Wonki Kim
Summary: this patch contains a change to replace non-thread safe call 'strerror' with eina_error_msg_get. Reviewers: cedric, bu5hm4n, devilhorns Reviewed By: devilhorns Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2019-02-13ecore_wl2: Make our wayland socket handling thread safeDerek Foreman
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:
2019-02-13ecore_main: Add ECORE_FD_ALWAYS flagDerek Foreman
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: implement homogeneous modeYeongjong Lee
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:
2019-02-13test/ui_box: add unittest for Efl.Ui.BoxYeongjong Lee
Summary: Testcase {F3613173} {F3613174} ref T5487 Depends on D7750 Test Plan: make check Reviewers: jpeg, barbieri, Jaehyun_Cho, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T5487 Differential Revision: refactor layout_updateYeongjong Lee
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 '' Reviewers: jpeg, Jaehyun_Cho, zmike Reviewed By: zmike Subscribers: segfaultxavi, zmike, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T5487 Differential Revision:
2019-02-13efl_ui_pager: change data typeJaeun Choi
2019-02-13Revert "elm_config: fix elm_config_save not to wake idle processes up"Marcel Hollerbach
This reverts commit 8b0b9ed2819588fbf81299b784a600c6ac7ccd13. There have been issues with this commit, for further informations, please see for more details.
2019-02-13edje: add missing NULL checksJaeun Choi
2019-02-13mono examples: Fix after removing init methodXavi Artigas
This was preventing "make examples" from working.
2019-02-13edje: add missing NULL checkJaeun Choi
2019-02-13evas_image: fix pixels_dirty_set(False) makes wrong object-change-list.Jiyoun Park
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. 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:
2019-02-12Revert "Revert command line array object because it's broken by design"Marcel Hollerbach
This reverts commit a57c7f751023fe1d1edeabbf8683574ac7497e5e. 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 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 :)
2019-02-12Revert "Revert the env object because it's broken portability - please redo"Marcel Hollerbach
This reverts commit d6294fa22b88187e44391c1c8ca64b1ebdf14533.
2019-02-12Revert the env object because it's broken portability - please redoCarsten Haitzler (Rasterman)
setenv and unsetenv are not portable. i explained to you at fosdem there are issues and it's why i used putenv in the original implementation and even though it's a pain (the string tou pass to putenv is a pointer used literallt from there on in and you get it from getenv, thus making ownership a pain -this is a libc issue we can't readily solve). use putenv like the original code. then put it back in. vtorri now has windows porting issues with the setenv use. i knew there was a reason that still existed... in addition your in_sync stuff is broken. psuedocode: // assuming BLAGH env is not set to anything here c = efl_core_env_get(global_env, "BLAH"); ... putenv("BLAH=10"); ... c = efl_core_env_Get(global_env, "BLAH"); i will get NULL in both cases for c ... but i should get "10" for the 2nd in reality. reality is lots of code across application code and libraries will at times mess with the environment. it has to work with this. the prior implementation did work with this. Revert "ecore: here comes a env object" This reverts commit 2373d5db5b4cd5dfe139aa2a10017ef61b28b5ce. Revert "efl_task: remove env from this object" This reverts commit c3d69f66a69c0def357a5c373a13343e1c01ff5d.
2019-02-12Revert command line array object because it's broken by designCarsten Haitzler (Rasterman)
Revert "ecore: get rid of commands in efl_task." This reverts commit 616381e9cfed41b83fef039b0e38c09b41fd3d7f. Revert "ecore: here comes a command line object" This reverts commit 48e5684b3c37b337edd7004e68fc0690b58a84e6. 1. this is broken: EOLIAN static const char* _efl_core_command_line_command_get(const Eo *obj EINA_UNUSED, Efl_Core_Command_Line_Data *pd) { return eina_strdup(pd->string_command); } it returns a const char * BUT it duplicates it on return. no. a big fat honking NO. return a char * or don't duplicate. pick. 2. _efl_core_command_line_command_array_set() is broken by design. it accepts an array of strings, but the strings are owned by the caller who creates the array (requiring they free them up themselves after this call) but the array becomes owned by the callee. the code here frees the incoming array but doesn't care about the string content of it. it's leak heaven waiting to happen (or bugs when someone wants to access the array they create to walk it to free the strings they put into it after it is set). i brought this up and it was dismissed. now exactly he issue i brought up is there with mixed ownership and the added complexity as well as transfer of some ownership but not others. go back and think about this so it isn't broken by design.
2019-02-12build: also build eo-tests with debug profileMarcel Hollerbach
this checks that eo-dbg is also working in the same manner as normal eo Reviewed-by: Stefan Schmidt <> Differential Revision:
2019-02-12efl_ui_focus: delete elements on invalidateMarcel Hollerbach
this lead to ERR's. A element is invalidated while the composition element is invalidated, which means, not yet deleted, but the Pointer will fail a call to efl_isa. Differential Revision:
2019-02-12eo: efl_isa with a EFL_OVERRIDE_CLASS should return trueMarcel Hollerbach
this is important, as basically every single class etc. can be a EFL_OVERRIDE_CLASS. This makes efl_override work with eo_debug. Differential Revision:
2019-02-12eo: the object size changes for the eo_debug profileMarcel Hollerbach
Differential Revision:
2019-02-12eo: fix typoMarcel Hollerbach
this while loop is actaully iterating obj->xref, therefore we should not take the pointer of data_xrefs. Differential Revision:
2019-02-12ecore: get rid of commands in efl_task.Marcel Hollerbach
Note that the usage in efl_thread.c should and could be removed. the problem with its usage is that when the ARGUMENTS event is fired, noone ever had the chance to subscribe to the loop of the thread yet. So all in all this is unneccessary, since noone could ever touch that. Differential Revision:
2019-02-12ecore: here comes a command line objectMarcel Hollerbach
the mixin for now can carry a command, which can be setted as an string. The string is then parsed again, this is done in order to make sure that everything that needs escaping really is escaped or parsed correctly. Differential Revision:
2019-02-12efl_task: remove env from this objectMarcel Hollerbach
the env operations are moved to the efl.core.env objects, which can be used there. Differential Revision:
2019-02-12ecore: here comes a env objectMarcel Hollerbach
the env object can be used to alter and edit the content of environment variables. Additionally, the class efl.core.env can be used to to setup a not applied set of environment variables, which then can be applied later (in the future) to set it directly to a spawned process for example, or as a general key/data storage. A efl.core.env object can also be forked off, which makes it easy to customize predefined objects. ref T7514 Differential Revision:
2019-02-11efl_ui_format: fix to display %% and unknown format elementJaehyun Cho
This fixes 2 things as follows. 1. Displays format string "%%" as "%". Like printf does, "%%" is displayed as "%". 2. Displays unknown format element as it is. In format string "(50%)", ")" is an unknown format element. Although format string has unknown format element, the format string is displayed like printf does. The cause of the issue displaying "0%" which was mentioned on a96933f964b1757b9d9f8a4cce14d883f35a6665 is as follows. The default format string of progressbar is set as "%.0f%%". Therefore, if progressbar's format string is not set, then "%" postfix is always displayed. This commit reverts commit a96933f964b1757b9d9f8a4cce14d883f35a6665. This commit restores commit b4112b9735ce75bce95974a257aa1880fa52a6bf. This commit restores commit be770d37fb05b8486907796dd16f4635bceb4ce1. Reviewed-by: Cedric BAIL <> Differential Revision:
2019-02-11elm_progressbar test: Add test for custom format strings to show when %% is ↵Stephen 'Okra' Houston
not escaped correctly. This adds a test that sets a custom progressbar format string that includes a custom percent (%%) that should be escaped to just one percent (%). This case has been broken and fixed many times and is broken again so it makes sense to now add a check for it to try and prevent the continual breakage. Reviewed-by: Cedric BAIL <> Differential Revision:
2019-02-11edje: apply maps to textblock cursors and backgroundsMike Blumenkrantz
when a map is applied to an edje part, it is expected that all components of the part respect the map attributes. this requires that, in the case of textblock parts, all the sub-parts which are internal to the textblock (entry) object also go through the map populate and apply codepaths fix T4977 @fix Reviewed-by: Cedric BAIL <> Differential Revision:
2019-02-11evas_object_smart: Speed up some cache invalidation callsDerek Foreman
Summary: A large number of cache invalidation calls are doing pointer indirection that is completely avoidable. Depends on D7852 Reviewers: devilhorns, cedric Reviewed By: devilhorns, cedric Subscribers: devilhorns, cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-02-11efl_ui : rename model connect and factory connect to bind property and factory.SangHyeon Jade Lee
As we discussed in T7469 with V40, efl_ui_model_connect efl_ui_factory_model_connect need to be renamed to efl_ui_bind_property efl_ui_bind_factory for this work, Efl.Ui.Model.Connect interface is changed as Efl.Ui.Bind, and bind_property and bind_factory both method is supported by this interface. bind_factory need Efl.Ui.Factory, and Efl.Ui.Factory inheritted Efl.Ui.Bind, so I little bit concerned about circular referencing, but so far, it works well. Reviewed-by: Cedric BAIL <> Differential Revision:
2019-02-11efl-csharp: Fix self in iface concrete functionsLauro Moura
Summary: It was mistakenly being called as static functions. Fixes T7619 Test Plan: See attached testcase. Reviewers: segfaultxavi, bu5hm4n, vitor.sousa Reviewed By: vitor.sousa Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7619 Differential Revision:
2019-02-11docs: Add custom DocFX templatesXavi Artigas
Summary: These templates add the following features: - Collapsible sections for simpler reading - Full class names in ancestors list (Could not make it work for descendants) - Removed duplicated Implements section - Removed huge Inherited Members section - Extended maximum number of hierarchy levels from 5 to 10 (because our hierarchy is really that big) Test Plan: Follow the doc/docfx README to generate the HTML pages and enjoy the improved and slightly-more-usable docs. Reviewers: lauromoura, bu5hm4n, zmike, cedric Reviewed By: lauromoura Subscribers: #reviewers, #committers Tags: #efl Differential Revision:
2019-02-11docs: Update efl_object lifecycle docsXavi Artigas
Summary: Explained the different phases, added method refs and removed outdated links. Ref T7557 Reviewers: zmike, bu5hm4n Reviewed By: bu5hm4n Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7557 Differential Revision:
2019-02-11efl_gfx_color_class: make this a mixin and move color_class_code hereMike Blumenkrantz
Summary: color_class_code seems to only have been added to efl_gfx_color in order to share the hex conversion code, but this is trivial to do when it's in another class and makes the api more sensible ref T7559 Reviewers: segfaultxavi, bu5hm4n, cedric Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7559 Differential Revision:
2019-02-08build: next attempt to fix build race conditionMarcel Hollerbach
the source should be used in the dependency. However, only the generated header source, not the .c files or we will get duplicated sources. This is another attempt to fix the build OSX travis failure Reviewed-by: Stefan Schmidt <> Differential Revision:
2019-02-08efl-mono: Turn printfs into debug messages.Lauro Moura
Summary: Cleaner output by default. Test Plan: Run examples and tests Reviewers: segfaultxavi, vitor.sousa Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-02-08eo: lets drop efl_interfacesMarcel Hollerbach
its not required anymore, our wonderfull new syntax solves the original problem it was trying to solve. fixes T7565 Reviewed-by: Cedric BAIL <> Differential Revision:
2019-02-07efl_ui_text: s/ELM_SEL_FORMAT_IMAGE/EFL_UI_SELECTION_FORMAT_IMAGE/gMike Blumenkrantz
Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl_widgets Differential Revision:
2019-02-07efl: Change non required constructors to @optional.Lauro Moura
Summary: These constructors aren't checked for in the finalize step of the initialization and may be given the @optional tag. For C# this means they can be ommitted from the constructor call. This also adds `Efl.Ui.View.model` as a constructor of `Efl.Composite_Model` as the finalizer checks for it. Fixes T7673 Test Plan: make check Reviewers: segfaultxavi, zmike, bu5hm4n, cedric, felipealmeida Reviewed By: segfaultxavi, cedric Tags: #efl, #do_not_merge Maniphest Tasks: T7673 Differential Revision:
2019-02-07eo: here comes reflection APIMarcel Hollerbach
this adds support in eo to generate a reflection API. To get the actaul reflection to the klass, the API efl_class_reflection_table_set needs to be called, the table in the end can be generated by eolian. Reflection API is inherited by the extended class. This means, if you have two reflection tables, first, the most upperst is called, then the next lower one is called. For now this API accepts NULL setter or getter, and will ignore them silently when they are called. fix T7681 Differential Revision:
2019-02-07eo: change API call of efl_class_functions_setMarcel Hollerbach
The next commit will bring support for something like reflection. This commit prepares the whole tree for getting another argument in efl_class_functions_set. ref T7681 Differential Revision:
2019-02-07efl_ui_text: emit EFL_UI_TEXT_EVENT_CHANGED_USER from paste + drop operationsMike Blumenkrantz
Summary: this is a user-triggered change so it must emit the event ref T6979 Depends on D7886 Reviewers: bu5hm4n, cedric, segfaultxavi Subscribers: #reviewers, #committers Tags: #efl_widgets Maniphest Tasks: T6979 Differential Revision:
2019-02-07efl_ui_text: forward EFL_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED eventMike Blumenkrantz
Summary: this is emitted on the internal object and must be propagated fix T6535 Depends on D7885 Reviewers: bu5hm4n, cedric, segfaultxavi Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl_widgets Maniphest Tasks: T6535 Differential Revision:
2019-02-07efl_ui_text: forward EFL_UI_TEXT_EVENT_CHANGED_USER eventsMike Blumenkrantz
Summary: these are emitted on the internal object and need to be propagated ref T7621 Depends on D7884 Reviewers: bu5hm4n, cedric, segfaultxavi Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl_widgets Maniphest Tasks: T7621 Differential Revision:
2019-02-07efl_ui_text: emit EFL_UI_TEXT_EVENT_CHANGED events properlyMike Blumenkrantz
Summary: these should be emitted any time text is changed in the object fix T7615, T7417, T6978, T6979 Depends on D7883 Reviewers: bu5hm4n, cedric, segfaultxavi Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl_widgets Maniphest Tasks: T7615, T7417, T6979, T6978 Differential Revision:
2019-02-07efl_ui_text: use Efl_Ui_Selection_Format for cnp_mode struct memberMike Blumenkrantz
Summary: fix T7068 Reviewers: bu5hm4n, cedric, segfaultxavi Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl_widgets Maniphest Tasks: T7068 Differential Revision:
2019-02-06efl-mono: Remove uneeded declaration from classes.Lauro Moura
Summary: The constructing method is not used anymore after D7789 landed. Test Plan: run tests Reviewers: segfaultxavi, felipealmeida, vitor.sousa Reviewed By: segfaultxavi, vitor.sousa Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision:
2019-02-06edje: migrate Eo API to use Eo callback instead of opaque type.Cedric BAIL
Summary: Depends on D7869 Reviewers: zmike, q66, segfaultxavi, bu5hm4n Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7671 Differential Revision:
2019-02-06edje: make legacy edje call rely directly on edje internal.Cedric BAIL
Reviewers: zmike, q66, segfaultxavi, bu5hm4n Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7671 Differential Revision: