Commit Graph

62071 Commits

Author SHA1 Message Date
Hermet Park 53cdf850ba evas png: apply interpolation when scale down image loading.
Summary:
This patch improves png quality when image uses scale-down at image loading.

Since current scale-down logic just works like point sampling,
image result could be wholely different,

Simply, if source data is consist of continous white and black pixels,
and scale down factor is 2, the sampled data would be only white,
and lose all black pixels, or vice versa.

The result can be unexpected by users.
Even current jpeg scale-down works with interpolation.

Before:
{F3711651}

After:
{F3711652}

Original:
{F3711653}

Reviewers: cedric, raster, #committers, kimcinoo, jsuya

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8788
2019-05-02 17:02:00 +09:00
Vincent Torri e2634eec67 Eina: add eina_strndup() API as inlined function
this add strndup implementation that does not seg fault when string is NULL.
This also implements strndup on Windows.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8790
2019-05-01 17:57:36 -07:00
Marcel Hollerbach 58f5529f70 efl_ui_spec: we can add efl_ui_pager now
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8752
2019-04-30 20:45:54 +02:00
Marcel Hollerbach 6fc04bf6b5 efl_ui_pager: track lifetime of children
when a child is deleted (externally), the widget should be forgotten
internally.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8751
2019-04-30 20:45:53 +02:00
Marcel Hollerbach 3fd16508a6 efl_ui_pager: error when you try to delete something which unavailable
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8750
2019-04-30 20:45:52 +02:00
Marcel Hollerbach 79bc6ed244 efl_ui_pager: redirect deleted objects to the top
otherwise we would not give up ownership of the widget

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8749
2019-04-30 20:45:51 +02:00
Marcel Hollerbach 8049d8a255 efl_ui_pager: implement rollover behavior
this behavior is implemented in efl_pack, so this should be in this
implementation.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8748
2019-04-30 20:45:50 +02:00
Marcel Hollerbach ea4b840539 efl_ui_widget: error on NULL passing
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8747
2019-04-30 20:45:49 +02:00
Marcel Hollerbach 7965e2e10f efl_ui_pager: refactor object addition
this reduces LOC and keeps functionality.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8746
2019-04-30 20:45:48 +02:00
Marcel Hollerbach cf05507bee efl_ui_pager: ensure that only valid objects are removed
everything else will just print errors

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8745
2019-04-30 20:45:47 +02:00
Marcel Hollerbach 50a5d6e250 efl_ui_pager: implement content iterator
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8744
2019-04-30 20:45:46 +02:00
Marcel Hollerbach 92b5d969bc efl_ui_pager: ensure deletion behavior
when a object is unpacked, we should ensure that only elements are
deleted from the box when they are added.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8742
2019-04-30 20:45:46 +02:00
Marcel Hollerbach c52dcdac91 efl_ui_pager: ensure objects are added and deduplicated
everything else will make things fall apart

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8741
2019-04-30 20:45:45 +02:00
Marcel Hollerbach 67e4f21c88 efl_ui_pager: refactor registering function for pager
this is a starting point for further function additions. this is esp.
usefull since a few functions need to be executed to every added object.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8740
2019-04-30 20:45:44 +02:00
Marcel Hollerbach 1b6ac14b3f efl_ui_pager: provide a pack( implementation
this is needed in order to make efl_ui_pager complete.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8739
2019-04-30 20:45:43 +02:00
Marcel Hollerbach 14a65b4f67 efl_ui_pager: lets stop returning false when in animation
i don't know why this is here. But undependend from if the widget is in
animation or not. We should ensure that the added content to the pager
is displayed and added. Having this failing is super unexpected to the
user, and basically undebuggable.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8738
2019-04-30 20:45:42 +02:00
Marcel Hollerbach 6acb4585b4 efl_ui_pager: mark box internal
otherwise they will adjust the parent property, and we do not want to
have that.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8737
2019-04-30 20:45:41 +02:00
Marcel Hollerbach 4f0ce2c58c efl_ui: add a internal flag to mark widgets internal
when a widget is marked internal, widgets can use that to behave in
certain ways. Box for example uses this to not alter the widget_parent
property anymore. Which is usefull for when boxes are used internally.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8736
2019-04-30 20:45:40 +02:00
Wonki Kim b376391078 wl2_input: fix a problem that occurs in case of using both pointer/touch input devices
Summary:
if wl2_input logic gets a 'touch down' event from touch device,
input->focus.touch has set and it cause the logic handles every input as touch input
from that moment at _ecore_wl2_input_mouse_move_send function.
that is the reason why the patch(410c1f9587) has written for.

however, if there are multiple touch input devices,
clearing focus.touch variable without checking any conditions causes another problem.

I mean a case such as 'touch 1 down' -> 'touch 2 down' -> 'touch 1 up' -> 'touch 2 up'
at the moment 'touch 1 up' event executed, focus.touch would be cleared,
and 'touch 2 up' and following touch events will not be executed properly at the moment.

this patch counts a number of touch devices which are grabbing to clear focus.touch at proper time.

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8787
2019-04-30 11:27:25 -04:00
Carsten Haitzler 703ca74d67 ecore drm2 - fix timeout in case case called from thread
so sw rendering make call ecore drm2 calls from a thread - i didnt
know that. so this makes my fix for gl hangs add hangs in sw as a
result. this fixes that. not perfect but better. do need refcoutnts on
outputs to be perfect...

also sometimes the commits fail so retry a few times...

this still leaves us wth another hang that is a separate issue.

@fix
2019-04-30 11:51:06 +01:00
Carsten Haitzler fd5d87a26c ecore evas drm - make vsync animators a possible ifdef
this makes it easyeir to swizzle on and off
2019-04-30 11:51:06 +01:00
Marcel Hollerbach 4f5b3b95fb meson: add docs
Summary:
this here brings one new top level target which is doc. It is not build
by default, and does rerun everything on every call.

ninja doc will create previews and run the doxygen command. After this
is done, a tarbal of the html & man will be created, latex is not added
for now, due to the unability to compile the resulting .tex files.

Nothing of the documentation is installed for now, if this would be
enabled, then every single ninja install would regenerate the whole
documentation again, which is quite a lot, and quite a pain (and
sometimes crashes)

While porting this over, i encountered a problem with *convert* the bug
report is linked in the comment.

fix T7781

Depends on D8690

Reviewers: zmike, segfaultxavi, cedric

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7781

Differential Revision: https://phab.enlightenment.org/D8561
2019-04-30 12:17:00 +02:00
Vincent Torri 93070e4f0f eina_unicode: return NULL if allocation fails
Reviewers: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8785
2019-04-30 09:24:48 +01:00
Hermet Park 0fda181e0a evas engine: convert data without any possible loss. 2019-04-30 17:15:54 +09:00
Jaehyun Cho 74135dcc33 Revert "efl.ui.widget: disable parts{} block for now"
This reverts commit 06aabbf8529edd5f09a1ce7c3c59237b2857e98a.

The original commit is reverted after release.
2019-04-30 11:25:09 +09:00
Christopher Michael e053c6e458 ecore-wl2: Minor formatting fixes
NB: No functional changes
2019-04-29 09:59:17 -04:00
Christopher Michael 049521557a ecore-wl2: Minor formatting fixes
NB: No functional changes
2019-04-29 09:58:05 -04:00
Xavi Artigas 8872867788 docs: Minor adjustments to Efl.Ui.Progressbar 2019-04-29 13:17:02 +02:00
Hermet Park 1f438bd1f0 evas png loader: optimize scale down logic.
Previously, mannual scale down logic was too primitive,
it copied pixel data each channels. Obviously, it's ineffective.

We know the general case - 4 bytes channel which is the most usage,
If loader copies data per four bytes, instructions could be reduced.

When I load scale-downed image(original 8k), about 0.02 secs was reduced by this.
2019-04-29 20:02:34 +09:00
Shilpa Singh 49f22b60e5 elm_scroller: make loop_set/get as generic API
elm_scroller_loop_set cannot be used for other widgets except scroller,
the API should be generic as this functionality can be implemented by other widgets as well.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8686
2019-04-29 09:10:02 +02:00
Christopher Michael 264f15400f elc_hoversel: Fix crash when no sd->last_location
As we cannot pass NULL to strcmp (crashes when we do), we should check
for a valid sd->last_location here in order to avoid crashing. This
was detected in Enlightenment Screen Settings dialog by selecting a
monitor in the hoversel drop down.

@fix
2019-04-27 14:23:44 -04:00
Cedric BAIL 5d512229cb eio: do not fail when the future has been cancelled properly.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8691
2019-04-27 19:56:32 +02:00
Marcel Hollerbach 60af618098 eina_vpath do not pass things through snprintf when not expected.
lets assume a user passes in a string like "blabla%dehydra" then %d will
be resolved by snprintf. Which is probebly not what we want. This
resolves this case and ensures that eina_vpath_resolve does not get
piped through snprintf

Reviewed-by: Dave Andreoli <dave@gurumeditation.it>
Differential Revision: https://phab.enlightenment.org/D8753
2019-04-27 12:31:39 +02:00
Cedric BAIL 78563a395e ecore: properly handle CHILD_ADDED and CHILD_REMOVED from source for Efl.CompositeModel
Before this patch we were directly sending this event on the Efl.CompositeModel, but they
actually might contain an Efl.Model in the event child field. That Efl.Model wouldn't have
been converted before to an Efl.CompositeModel exposing incoherence from the user of
the object point of view. This patch fix that behavior.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8661
2019-04-26 11:32:55 -07:00
Cedric BAIL 13b230029d ecore: use new infrastructure for Efl.CompositeModel to only have one Model object represent its data at any point in time.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8660
2019-04-26 11:32:52 -07:00
Cedric BAIL eb8511ce7b ecore: protect efl_model_properties_get from accesing NULL pointer when Model parent is not a Efl.BooleanModel.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8659
2019-04-26 11:32:50 -07:00
Cedric BAIL 8872e48458 ecore: fix efl_model_property_ready_get to actually return the right future when the data is not ready.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8658
2019-04-26 11:32:48 -07:00
Cedric BAIL fcd5eb755b ecore: allow multiple Efl.ViewModel of the same source thanks to new infrastructure.
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8657
2019-04-26 11:32:46 -07:00
Cedric BAIL d9d5846db6 ecore: add infrastructure to create children Model once and avoid duplicated view of the same data.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8656
2019-04-26 11:32:43 -07:00
Cedric BAIL 805128dbf3 eina: allow copy of EINA_VALUE_EMPTY type.
This is usefule to allow timeout future to be propagated through eina_future_all
or eina_future_race for example.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8655
2019-04-26 11:32:40 -07:00
Marcel Hollerbach c95662cbab meson: lets add cxx examples
Summary:
it appears they have not been part of this before. Now they are, and two
broken examples are fixed.

Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8735
2019-04-26 16:38:37 +02:00
Xavi Artigas fb82b51d6a docs: Reword Efl.Container and family
Summary:
Avoid using "Item" since this is used by Grid and List items, or "Child" since
this is what Efl.Object uses.
Also clarify what each container does.

Test Plan: Only changes in docs. Everything still builds and passes tests.

Reviewers: bu5hm4n, cedric, zmike

Reviewed By: bu5hm4n

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8720
2019-04-26 14:24:00 +02:00
Marcel Hollerbach a6346c8eed autotools: fix build
Summary:
i forgot this before. efl_gfx_arrangement.eo needs to be in the list of
files here.

Reviewers: segfaultxavi, cedric, zmike

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8721
2019-04-26 14:14:15 +02:00
Marcel Hollerbach 4eb8b45494 efl_ui_spec: lets add a README
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8713
2019-04-26 12:09:34 +02:00
Marcel Hollerbach 03e1e849b1 efl_ui_suite_spec: add efl_ui_grid to test suite
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8707
2019-04-26 12:06:09 +02:00
Marcel Hollerbach 874e07550d efl_ui_grid: do not delete a item that is not part of this container
otherwise we start to delete callbacks etc. on a widget that we do not
have.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8706
2019-04-26 12:06:08 +02:00
Marcel Hollerbach 080342d82e efl_ui_grid: reparent deleted children
if a child is removed from grid, the parent should not be grid anymore.
Additionally, group members should also be removed, or random deletions
of widgets could happen.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8705
2019-04-26 12:06:07 +02:00
Marcel Hollerbach 91cacb5357 efl_ui_grid: add an error to grid
grid only accepts grid items, not general widgets. If a wrong type is
passed in, a error should be printed.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8704
2019-04-26 12:06:06 +02:00
Marcel Hollerbach df089ac5ff efl_ui_grid: implement index behaviour of efl_pack
efl_pack defines behaviour for indexes greater and smaller than 0 and
the actaul size of items. With this commit the defined lange -count <->
count -1 now works as expected.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8703
2019-04-26 12:06:05 +02:00
Marcel Hollerbach 404dcc290b efl_ui_grid: fixup pack APIs
the APIs in pack should only allow a single registeration of a item.
And when this item is registered, the parent should be set accordingly.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8702
2019-04-26 12:06:04 +02:00