summaryrefslogtreecommitdiff
path: root/src/lib (follow)
AgeCommit message (Collapse)Author
2019-07-22ecore wl2 - fall back to shm if dmabuf fails in buf initCarsten Haitzler (Rasterman)
so even if shm was an allowed mode/flag, we never fell back to shm if dmabufs were not possible (/dev/dri/renderD128 didn't exist or wansn't open-able). that's decidedly a bad thing to do. @fix
2019-07-20ecore - efl thread - remove mroe error case cnp code and share itCarsten Haitzler (Rasterman)
more cnp code de-duplication
2019-07-20ecore - efl thread - move duplicate code into shared func to reduce cnpCarsten Haitzler (Rasterman)
more copy & paste code - put into shared func.
2019-07-20ecore - efl thread - remove more copy & paste in fd in clearing handlingCarsten Haitzler (Rasterman)
move to common shared function to reduce c&p
2019-07-20ecore - efl thread - reduce copy & paste and merge into single funcCarsten Haitzler (Rasterman)
the call and call sync stuff was almost entirely copy & paste - this moves all the common code into shared funcs that reduce code bloat. it also moved from heap to stack for sync reply struct location.
2019-07-19evas/map: permit evas_map_free(NULL)Mike Blumenkrantz
free functions in efl should always handle null pointers gracefully @fix Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9363
2019-07-19evas: fix type checking of Evas pointers in legacy functionsMike Blumenkrantz
many of these functions go directly to evas internals with no eo checks, and the existing "MAGIC_CHECK" macro has somehow become a useless null check type checking here is important in order to avoid crazy behavior when the wrong object types are passed @fix Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9364
2019-07-19ecore: avoid breaking next main loop start if quit occurs outside of loopMike Blumenkrantz
in the case where ecore_main_loop_quit() was called before ecore_main_loop_begin(), the latter call would exit immediately without ever iterating the main loop @fix Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9360
2019-07-19edje: add some null checks for nonexistent objectsMike Blumenkrantz
minor cleanup to fix EVAS_DEBUG_ABORT usage Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9361
2019-07-19meson: fix debug-threads optionMike Blumenkrantz
it doesn't matter if this doesn't work with eina_debug since this isn't meant to be used for that kind of debugging Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9359
2019-07-19efl_ui/table: optimize position_set operations with tablesMike Blumenkrantz
if a table is moved and no other changes are made to the table or its children, e.g., if the table is scrolled, then there is no need to loop over the table's items repeatedly in order to accurately calculate all the item geometries and positions. instead, simply apply an offset from the last table calc position to each child item and handle the position changes more transparently this yields roughly a 12% perf improvement to the 'efl.ui.scroller simple2' test and brings rendering up to nearly 60fps Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9346
2019-07-19efl_ui/table: avoid exploding stack with lots of subobjectsMike Blumenkrantz
using alloca like this without any limits is dangerous, so switch to malloc here in such cases Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9344
2019-07-19eo: add helper for checking the ownable stateMarcel Hollerbach
if a object is ownable, then there is one free reference. If not, a error will be printed. Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9332
2019-07-19evas/box: avoid triggering smart_move callbackMike Blumenkrantz
any time an evas box is moved, it flags itself to do a recalc on all of its contents in the next render. evas box also inherits from smart clipped class, however, which means that it will also move all of its contents immediately on every single move. this results in something like: move(box) -> for content in box { move(content) } -> render -> recalc(box) -> for content in box { calc(content); move(content); } which is massively inefficient and results in box being completely unusable once it has a large number of contents by skipping immediate move() calls for all the box contents, we can bring this performance back to usable levels @fix Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9336
2019-07-19Add missing Slider header to Efl_Ui.hXavi Artigas
Summary: Without this, apps need to include Elementary.h to use unified sliders, which is bad. Test Plan: Create an app that uses sliders and only include Efl_Ui.h. Magic! Reviewers: zmike, bu5hm4n, cedric Reviewed By: cedric Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9358
2019-07-18efl_ui/scroll_manager: fix int overflow in animation duration calcMike Blumenkrantz
Summary: Evas_Coord is a regular int, so this will overflow easily for large scrollers and return NaN for scroll duration and break the scroll Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9355
2019-07-18Eina vpath: remove support of ~username vpath on WindowsVincent Torri
On Windows, one must be in kernel mode to obtain informations of other users Reviewed-by: Carsten Haitzler (Rasterman) <rasterman.com> Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9339
2019-07-17eina: set EINA_VALUE_EMPTY during library init.Cedric BAIL
This is a work around compiler/linker limit on some system as reported by Romain Naour. Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Differential Revision: https://phab.enlightenment.org/D9348
2019-07-17elementary: fix potential race condition by using Eina_Future attached to ↵Cedric BAIL
the object. I get some random segfault in elementary test suite pointing to this code. Most likely we do not properly destroy the timer during destruction. Could be because we initiate a delay while destruction is going on or something like that. Anyway, it is easier and more robust to get it fixed by linking the lifetime of the timeout to the lifetime of the widget as future allow us to do easily. Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9298
2019-07-17ecore: remove efl_loop_{un,}register from .eo.Cedric BAIL
We have to keep this as an API, but binding do not need to see it at this point. Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9297
2019-07-17eo: use efl_provider_{un,}register infrastructure instead of Efl_Loop one.Cedric BAIL
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9296
2019-07-17ecore: rely on efl_provider_{un,}register to do the job of ↵Cedric BAIL
efl_loop_{un,}register. Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9294
2019-07-17elementary: first search on ourself instead of our parent for all providers.Cedric BAIL
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9293
2019-07-17eo: add ability to register provider on the Eo object directly.Cedric BAIL
This should reduce the need for custom implementation of efl_object_provider_bind. It also enable the ability to register provider from user code on any Efl_Object. Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9292
2019-07-17elementary: Efl.Ui.Layout now rely on model change event to track the model.Cedric BAIL
This means that this will work nicely with model provider too. Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9291
2019-07-17efl: add a Efl.Model_Provider that every widget will look up for in their ↵Cedric BAIL
parent tree. This is done to simplify code as you only need to set the model on the provider and all the widget that are using it as a provider will automatically be updated. The child will find a provider during at the time the first property binding is set on the widget by checking if the parent have an Efl.Model_Provider set. It is not necessary to set a model to have a valid lookup on a Efl.Model_Provider. To disable a widget lookup, you can just force set a model on it (even NULL) and it will disable the lookup. Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9290
2019-07-17elementary: Efl.Ui.Image now rely on event to update model binding.Cedric BAIL
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9289
2019-07-17efl: implement notification for when the model is changed on a widget.Cedric BAIL
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9288
2019-07-17eolian: remove support for old free() syntaxDaniel Kolesa
Now freefuncs can only be specified on type declarations but not on types themselves. Also remove transitiveness of freefuncs.
2019-07-17efl_ui/table: emit EFL_PACK_EVENT_LAYOUT_UPDATED on layout updatesMike Blumenkrantz
this should be emitted. Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9343
2019-07-17elm/scrollable: avoid unnecessary edje recalcsMike Blumenkrantz
in this case we just want to trigger pending edje calcs and not force new ones. this avoids doing a full edje recalc constantly when scrolling @fix Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9335
2019-07-17efl/scroll manager: stop clearing animators on every wheel eventMike Blumenkrantz
if scrolling is supposed to continue then just reuse the existing animator callback and avoid emitting a scroll,start/stop event pair for every new input event Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9340
2019-07-17efl_ui/box: optimize position_set operations with boxesMike Blumenkrantz
if a box is moved and no other changes are made to the box or its children, e.g., if the box is scrolled, then there is no need to loop over the box's items repeatedly in order to accurately calculate all the item geometries and positions. instead, simply apply an offset from the last box calc position to each child item and handle the position changes more transparently this yields roughly a 12% perf improvement to the 'efl.ui.scroller simple' test and brings rendering up to nearly 60fps Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9342
2019-07-17efl_ui/box: avoid exploding stack with lots of subobjectsMike Blumenkrantz
using alloca like this without any limits is dangerous, so switch to malloc here in such cases Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9341
2019-07-17efl_ui_win: optimize shutdownMarcel Hollerbach
in case we are having a scroller with a lot of elements on it, we are spending a lot of time in stuff like recalculating clips, even if they will never be used again. With this freeze here, we are saving 9s shutdown time in item_container. Which brings the overall closing time from 10s down to 1s, which is a win IMO. Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9325
2019-07-17efl_ui_widget: relax the amount of event subscriptionsMarcel Hollerbach
there is a very basic problem in eo events. We are having one central array of event subscription, if for example a widget is now listening to changes in its parent, then we are 100% asking for trouble. As an example: - A scroller with 100 buttons in it. - Every button will have a subscription to the FOCUS_MANAGER_CHANGED event If you now scroll, the position is updated in the scroller, therefore the position in scroller is updated. This has the result that the whole list of 100 event subscriptions is walked, which is obviously bad, however, this solution here is way easier than fixing eo (i am not even sure there is a nice solution to it). Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9324
2019-07-17efl_ui_widget: performance optimize deletionMarcel Hollerbach
when a logic parent does not have any widgets left, the parent needs to be reevaluated. However, this only has to happen when there is a change in state (eg. from 0 -> N or from N -> 0). Every other call can be safed. This commit introduces this checking, and safes up performance. Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D9323
2019-07-17eolian: allow binbufs to be ownedDaniel Kolesa
2019-07-17eolian: add builtin binbuf and event typesDaniel Kolesa
Binbuf is like strbuf and allows not using the Eina opaque wrapper now, which will remove some ptr(). And event translates to Efl.Event because otherwise there would be no way to get rid of void_ptr.
2019-07-16efl_ui_slider: fix focus interactionMarcel Hollerbach
Summary: when we move the slider up or down, we might be at the minimum or maximu, if this is the case. Then we must not eat the key event, otherwise focus is stuck on this widget. Depends on D9328 Reviewers: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9329
2019-07-16efl_ui_text: fix focus breakingMarcel Hollerbach
Summary: text should not be focusable by default. Only focusable if it is editable. This fixes mysterical focus disappearing in tests using efl.ui.text. Depends on D9327 Reviewers: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9328
2019-07-16efl_ui_slider: change the semantical meaning of step propertyMarcel Hollerbach
Summary: before the step property was used as a relative value. The value that was added in the end was (max-min)*step. Which is quite confusing given the fact that the other APIs in in efl_ui_range_display are also taking values absolut. Other implementations also do so. fix T4834 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T4834 Differential Revision: https://phab.enlightenment.org/D9327
2019-07-16elm_actionslider: fix internal state when programmatically changing valueMike Blumenkrantz
this value is supposed to always match the current widget state and signal emission breaks if the states are not consistent @fix Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9319
2019-07-16elm_actionslider: fix signal emission for left selectionMike Blumenkrantz
this is supposed to be a comparison, not a filter ref a65cb62853c344bcdc34af589a4199488f9025e8 Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9318
2019-07-16efl_ui_widget_part: implement some expected methodsMike Blumenkrantz
checking part type and part geometry is pretty common, so these base implementations can fill in gaps in existing functionality Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9317
2019-07-16docs: Enhance Efl.Ui.Clickable_Util documentationXavi Artigas
2019-07-16Evil: remove getpwuid() from Evil.Vincent Torri
Summary: getpwuid() is used only in eina_test_vpath() and is called when getpwent() is available, which is not the case on Windows Test Plan: compilation Reviewers: raster, cedric, zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9326
2019-07-15Revert "Revert "efl: prevent usage of some Eina.* stub types in stable APIs""Vitor Sousa
EFL# support for slice and rw_slice was added in a previous commit. So now it is safe to undo the reversion of this commit. This reverts commit 25ef604467b083d1f5ff2c7f9a1a82e660e04443.
2019-07-15efl.h: avoid redefinition of typedef 'Efl_Gfx_Path_Command'Boris Faure
Reviewers: zmike, bu5hm4n, cedric, raster Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9311
2019-07-12ecore_evas: on internal Evas canvas uncontrolled death, properly clean up ↵Cedric BAIL
Ecore_Evas. This allow evas test to work with an Ecore_Evas directly. It prevent leaking of memory in the case of half destroying Ecore_Evas. Reviewed-by: Hermet Park <hermetpark@gmail.com> Differential Revision: https://phab.enlightenment.org/D9104