summaryrefslogtreecommitdiff
path: root/src/lib (follow)
AgeCommit message (Collapse)Author
2019-02-13Remove individual class BETA guardsXavi Artigas
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
2019-02-13ecore-x: only modify _ecore_key_grabs when key is toggledThierry
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
2019-02-13ecore_wl2: Make our wayland socket handling thread safeDerek Foreman
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
2019-02-13ecore_main: Add ECORE_FD_ALWAYS flagDerek Foreman
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
2019-02-13eo: remove class functions from eoMarcel Hollerbach
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
2019-02-13eolian: drop class function overridingMarcel Hollerbach
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
2019-02-13efl_input: remove the API of efl_input_instance_getMarcel Hollerbach
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
2019-02-13ecore_wl2: replace strcpy with strncpyWonki Kim
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
2019-02-13ecore_evas: fix a potentional deref after null problemWonki Kim
Summary: this patch modify a logic to return after, failing to call eore_evas_buffer_allocfunc_new function. Reviewers: Hermet, bu5hm4n, cedric, devilhorns Reviewed By: devilhorns Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7918
2019-02-13Revert this as it should not have been pushed yetChristopher Michael
Revert "ecore_wl2: Make our wayland socket handling thread safe" This reverts commit efa85f35f447b54a6996337a11d13e3734f110bd.
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: https://phab.enlightenment.org/D7921
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: https://phab.enlightenment.org/D7915
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: https://phab.enlightenment.org/D7914
2019-02-13ui.box: 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: https://phab.enlightenment.org/D7889
2019-02-13ui.box: 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 '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
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 https://phab.enlightenment.org/D7354 for more details.
2019-02-13edje: add missing NULL checksJaeun Choi
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. 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
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 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 :)
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 <stefan@datenfreihafen.org> Differential Revision: https://phab.enlightenment.org/D7911
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: https://phab.enlightenment.org/D7623
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: https://phab.enlightenment.org/D7910
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: https://phab.enlightenment.org/D7908
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: https://phab.enlightenment.org/D7517
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: https://phab.enlightenment.org/D7516
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: https://phab.enlightenment.org/D7514
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: https://phab.enlightenment.org/D7510
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 <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D7856
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 <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D7648
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: https://phab.enlightenment.org/D7853
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 <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D7529
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: https://phab.enlightenment.org/D7903
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: https://phab.enlightenment.org/D7898
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 <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D7893
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: https://phab.enlightenment.org/D7894
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: https://phab.enlightenment.org/D7855
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: https://phab.enlightenment.org/D7879
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: https://phab.enlightenment.org/D7882
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: https://phab.enlightenment.org/D7887
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: https://phab.enlightenment.org/D7886
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: https://phab.enlightenment.org/D7885
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: https://phab.enlightenment.org/D7884
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: https://phab.enlightenment.org/D7883
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: https://phab.enlightenment.org/D7870