Commit Graph

3167 Commits

Author SHA1 Message Date
Jean-Philippe Andre c9eec74002 evas filters: Move fill to software generic (4/8)
This also moves the header evas_engine_filter.h to its subdir.
2017-04-14 11:26:42 +09:00
Jean-Philippe Andre b6df13b024 evas filters: Move curve to software generic (3/8)
This moves the RGBA premul/unpremul functions to static_libs/draw.
2017-04-14 11:26:42 +09:00
Jean-Philippe Andre 09ff5f419e evas filters: Move mask to software generic (2/8) 2017-04-14 11:26:42 +09:00
Jean-Philippe Andre 0740010a06 evas filters: Move blend to software_generic (1/8)
This is an attempt at refactoring the filters code so I can
later implement GL support. This patch adds a few extra changes
to remove avoid calling functions of libevas from the software
engine: use the draw functions from static_libs/draw rather
than evas_common APIs.
2017-04-14 11:26:42 +09:00
Cedric BAIL 9883831b76 evas: move Efl_Canvas_Output to be an internal only API. 2017-04-13 15:25:29 -07:00
Cedric BAIL 969112a36d evas: this symbol actually don't exist. 2017-04-13 14:39:46 -07:00
Stefan Schmidt 9a15eeaced Revert "efl: terrible kludge so avoid termination crash on osx"
The only purpose of this commit was to allow efl 1.19 to be
released on macOS wothout crashing on termination. Time to revert
it and see that we can find a real fix for the next release.

This reverts commit cd5e755951.

ref T5245
2017-04-13 16:11:39 +02:00
Cedric BAIL b04f584346 evas: engine_info set/get should never show up in Eo API.
Eo API are for something we want to expose to third party application
and bindings. engine_info is exactly what we don't want to expose.
2017-04-12 15:13:19 -07:00
Bryce Harrington bb1a8779db evas: correct pluralization grammar in Evas_Eo.h
Test Plan:
- There are other grammatical errors, but I'm focusing this patch just
  on pluralization-related issues to ease review and make it clearer if
  I've introduced any inaccuracies.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4784

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-04-12 14:27:40 -07:00
Jean-Philippe Andre 4b09ad7d6b evas: Fix event propagation in elm_widget
See the previous commit. efl_provider_find() could not
find a canvas because the event object had no parent.

This restores the slider in E's sound mixer.

Note: Input events may expose the evas canvas object
because of parenting. This will eventually need fixing,
as only efl.ui.win should be exposed.

If 8ff2dffe7c7a21278dis backported to 1.19 then this patch
also needs to be merged as well.
2017-04-12 20:28:20 +09:00
Jean-Philippe Andre 8ff2dffe7c evas/elm: Fix bad propagation of ON_HOLD flag
Test scenario:
  elementary_test -to "ExtScroller"

Try and modify a slider's value with the mouse wheel. Bad things
were happenning, as the flag ON_HOLD was not properly propagated
from the slider to the scroller. This is because the legacy
event_info structure inside the eo event info was not updated
with the new flag value.

By introducing a new EO only API, which is meant to remain
internal, we can use a single legacy info structure, fixing
this issue.

Note: In the future this API needs to be internal, not protected.

@fix
2017-04-12 18:43:15 +09:00
Bryce Harrington 20e7f661e6 Evas_Common: Fix minor grammatical errors
Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4781
2017-04-11 11:48:36 -04:00
Minkyoung Kim 60a97c9be3 evas: If there isn't clipper when recalcing clip, set mask.clip = NULL.
Summary:
There's problem in Tizen3.0.

1. Clip set mask_obj to obj for masking.
2. Unset mask_obj from obj, and del mask_obj.
3. obj has clip.mask still. So obj is trying to do mask_subrender() for freeed mask_obj.

So reset clip.mask to NULL, If there isn't clipper.

Now, there's no routine for reseting clip.mask when clipper object is freed. isn't it?
Actually I'm not sure that clip.mask=NULL should be there as this patch.

Test Plan: Tizen3.0 wearable

Reviewers: cedric, raster, wonsik, jpeg

Subscribers: scholb.kim, dkdk

Differential Revision: https://phab.enlightenment.org/D4721

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2017-04-11 13:54:53 +09:00
Jean-Philippe Andre fd69113f6a evas map: Fix test case "Flip Page"
Since 9b7ac51943 evas map tries to avoid recalculating
stuff when the map parameters have not changed. Unfortunately the
code in elementary_test -to "Flip Page" was badly written. It was
modifying a constant's internal value (after ugly cast). So the
memcmp() and all other checks would return successfully, as the
exact same pointer was being compared to itself.

So, I've fixed the comparison by adding some forgotten parameters
(perspective) but most importantly I fixed the map API usage in the
test case.
2017-04-10 19:38:56 +09:00
Jean-Philippe Andre f3c9500a6d evas filters: Fix a rare crash in text render (SW)
There are reports of crashes when y < 0. This case seems
abnormal in case of filters, as I don't know how to reproduce it,
but it's happened.

Thanks Youngbok Shin for the report.

@fix
2017-04-10 16:56:14 +09:00
Youngbok Shin 1ab87367d8 evas: give width offset when Evas tries to find ellipsis position
Summary:
If the last item before ellipsis item has bigger width than its advance,
evas_common_font_query_last_up_to_pos() function can find wrong ellipsis position.
When Evas finds a position for non last item, Evas must care about additionally
available space for glyph's width of the given x position.

ex) the last item's glyph before ellipsis item has a tail to draw above the ellipsis item.

@fix

Test Plan:
Test case will added as comment.
(Becasue of font license problem.)

Reviewers: herdsman, raster, jpeg, woohyun

Subscribers: cedric, Blackmole

Differential Revision: https://phab.enlightenment.org/D4727
2017-04-10 12:15:20 +09:00
Carsten Haitzler 6aa72e3cf6 evas - async preload cancel fix - don't double delete/free
just match the ref with the drop anddon't also manually free the image
as this leads to accessing of freed memory which is not a good thing.

this should fix T5374

@fix
2017-04-10 10:40:52 +09:00
Jiyoun Park 258b42b47b evas_clip: fix bug _clipper_del_cb function unset current clipper
old_clipper = evas_object_clip_get(objA);
   evas_object_clip_unset(obj_A);
   evas_object_clip_set(obj_A, new_clipper);
   evas_object_del(old_clipper);

   when old_clipper deleted, _clipper_del_cb unset the current new_clipper of obj_A.
2017-04-07 11:35:55 +09:00
Bryce Harrington 3aa0ce099f evas: fix typo 'initializer to' to 'initialize to'
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4767

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-04-06 15:20:49 -07:00
Cedric BAIL 8280e523ee evas: always send a proper event to simplify callee logic.
@fix
2017-04-06 13:31:53 -07:00
Bryce Harrington cd60f0a1be Evas_Common: Fix assorted typos
Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4730
2017-04-04 09:23:55 -04:00
Bryce Harrington 51381d4e20 Evas GL: Correct a couple typos in doxygen comments
Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: devilhorns, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4737
2017-04-04 09:21:34 -04:00
Bryce Harrington bab7d2ec41 Evas_Loader: Fix pluralization in grammar
Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4736
2017-04-04 09:20:48 -04:00
Bryce Harrington 72878655b7 evas: Correct typos in Evas_Eo.h docs
Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4735
2017-04-04 09:20:24 -04:00
Youngbok Shin 5da69d7ac9 evas textblock: fix top/bottom valign tag reversed issue
Summary:
valign tag is for handling vertical align according to line's height and
text's height. But, it worked in a line which has only one font and
one font size, too. And the result was abnormal depending its font.
The line's height is [ascent + descent]. But, Textblock uses max ascent and
items's height(could be used max ascent + max descent according to its position)
when Textblock calculates item's yoff.
So, If Textblock calculate yoff based on line's height,
it should use only ascent and descent instead of max ascent and max descent.
@fix

Test Plan: Will attached in comment section.

Reviewers: raster, herdsman, jpeg, woohyun

Reviewed By: raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4760
2017-04-04 18:36:42 +09:00
Jean Guyomarc'h cd5e755951 efl: terrible kludge so avoid termination crash on osx
Currently, elementary programs crash on termination on macOS (seems
Sierra-specific). This is very nasty, looks like deep memory corruption...
Without valgrind (or like) support on Sierra, it is difficult to
pinpoint the origin of the problem.

Due to the imminient release, and after discussion with @stefan, this
kludge will allow the release to happen.

This commit MUST be reverted just after the release, so we don't
blindfold ourselves!

Ref T5245
2017-03-31 14:11:01 +02:00
Bruno Dilly e0170c2b0d evas_events: look for seats on hash instead of input devices
Summary:
Otherwise it won't ever find the modifier masks.

Fixes T5146

@fix

Reviewers: iscaro, Jaehyun_Cho

Subscribers: cedric, jpeg

Maniphest Tasks: T5146

Differential Revision: https://phab.enlightenment.org/D4738
2017-03-24 14:14:38 -03:00
Mike Blumenkrantz b86362dd05 evas table: CRI when attempting to pack a table child into another table
@fix
2017-03-17 15:15:25 -04:00
Bryce Harrington 24ed55539d evas: drop redundant pointer check
Summary:
The function already has a precondition test for !font, so this
additional test will never trigger.

@fix CID1371525

Reviewers: cedric, jpeg

Subscribers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D4682

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-03-15 10:49:47 -07:00
Jean-Philippe Andre 0b5b5e44a5 evas: Fix crash with events on the canvas
Since ecore now uses efl events to feed input events to the
canvas, anyone can now listen to any event on the evas. But
when using the legacy API the event info needs to be the legacy
struct, and not the eo event info otherwise crashes will happen.

While this is a new use of events, I consider it valid and it's
better to fix it rather than disallowing it. Fixed by wrapping
evas events the same way evas object events were handled.

Fixes T5266
2017-03-14 15:41:24 +09:00
Jean-Philippe Andre 5f3515542b evas: Add more debug info to an ERR message (stack)
Also use eina_safety as those are safety checks. Helps with GDB
(single breakpoint in eina_safety).
2017-03-14 11:04:16 +09:00
Mike Blumenkrantz a73a18b01d Revert "evas_table: abort when there is already the option struct"
This reverts commit 008711b3b0.

this breaks elm_table_pack_set() as well as other valid usage and is
not a valid change to the code
2017-03-10 15:54:22 -05:00
Jean-Philippe Andre 815e53ee35 evas filters: Save selected render op of the final object
If an object is meant to use COPY mode (for evil purposes,
most likely), then its filtered output should also be using
COPY mode.

@fix
2017-03-09 17:39:39 +09:00
Bryce Harrington b9c8c9c08c evas: Check for null pointer deref
Summary:
Earlier places in the function are testing if obj->layer is null, so
should be checked here as well before it's used.

@fix CID1371826

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4707
2017-03-09 15:47:43 +09:00
Carsten Haitzler d550190d6b evas image cache - add lots more locking to try stamp out any thread bug
this definitely fixes T5223 because it adds an engine lock around the
code segemtnt that does compare time stamps... and hopefulyl a few
more things too.

@fix
2017-03-09 11:21:19 +09:00
Youngbok Shin f83ce20e1c evas: clean up GL images for emojis when GL context is free'd
If GL context is free'd before processing font shutdown,
textures for emoji glyph's GL images will be free'd without clean
up its GL images. It causes eina mempool infinite loop issue when
emoji's GL images are free'd in shutdown process.

So, the patch will make a list for emoji's GL images in context and
clean up them when the context is free'd. Just like font textures in
context.

@fix

Differential Revision: https://phab.enlightenment.org/D4695

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2017-03-08 19:35:03 +09:00
Jean-Philippe Andre 49e7a8ee69 evas gl: Add missing GLES 3.1 definitions
Evas_GL_API supports the GLES 3.1 functions but the required
macros were not present. Thanks Brokenshakles for the tip.
2017-03-08 18:36:03 +09:00
Jean-Philippe Andre 99d21f6d9c evas: Print CRI message in case of bad event usage
This will abort E when using Bryce and EINA_LOG_ABORT is enabled
(it is enabled by default when running a non-release version of E).
That's on purpose, as that code needs fixing :)

Ref T3144
2017-03-08 17:04:57 +09:00
Jean-Philippe Andre 9dcf2d3965 evas: Set thread name for preload
This can be useful during debugging.
2017-03-08 11:25:40 +09:00
Jean-Philippe Andre aacd25ef6b evas: Fix layer usage count and deletion
When using smart objects (quite likely, isn't it?), the internal
layer usage count was not perfectly tracked. This was especially
true if layer_set() was called on a (top-level) smart object.
As a consequence, there could be no objects in the layer but the
usage would still be > 0. Thus, the layer was not deleted, not
removed from the inlist of layers, and efl_gfx_stack_above_get()
could return NULL as the layer above a certain object was empty.

Fixes T5201
2017-03-07 11:04:34 +09:00
Jean-Philippe Andre 1bfce47bf3 evas: Fix non-disappearance of text entry cursor
The mouse cursor in a text entry tends to not disappear even when
the mouse moves out of the entry. This seems to happen more when
the cursor was visible for a single frame only (although I'm not
100% sure about this condition).

One important difference with previous versions of EFL is that
the cursor is now part of the theme, so it is an image object
and not set by the compositor (it looks vastly different).

Anyway, when processing the list of pending_objects, we look at
the flags render_pre and rect_del which were (re)set during the
previous frame. Those flags are then (re)set during phase 1 which
happens after processing the pending objects list... only if
needed. So, phase 1 sets the condition to invalidate the current
lists of objects but that condition is checked for before phase 1.

This patch adds a check on delete_me which should hopefully make
it a rare enough case, for performance, but still force correct
rendering.

This is all spaghetti code, sorry if this explanation also reads
like pasta.

Note that exactness tests may still be broken because earlier
versions of EFL simply did not have the cursor inside the canvas
itself.

Fixes T5231
2017-03-06 17:04:26 +09:00
Jean-Philippe Andre 38446d8daf tests: Remove CPU affinity from all threads
I believe that all the threads created in our test suite should
be spawned without any special CPU affinity. The default parameter
is not 0 (corresponds to the first CPU, known as CPU 0) but -1.

Similarily the default priority is NORMAL (1), not 0 (URGENT).

This also affects two unused code paths: evas render2 and gl preload.

@fix
2017-03-06 17:03:47 +09:00
Guilherme Iscaro 347c75fbe3 Efl.Canvas.Object: Multi-seat API should not be exposed to legacy.
Summary: This new kind of APIs should be EO only.

Reviewers: jpeg, cedric, barbieri, bdilly, stefan_schmidt

Reviewed By: cedric, barbieri

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4696

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-03-02 11:06:20 -08:00
jiin.moon f506f65141 evas: Fix double clipping issue with map
If object's parent has map and object also has map, the evas
clip would be applied twice.

The context already applied clip area when drawing on map_surface.
So don't need more clipping when drawing map_image.

Also, make sure to apply the framespace clip when drawing the map
surface onto the final canvas. Thanks @jiin.moon for the initial
patch (see D4694).

@fix

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2017-03-02 16:43:47 +09:00
Bryce Harrington b0ecb1fc90 evas: Drop duplicate macro definitions SETUP_LINE_*
Summary:
SETUP_LINE_SHALLOW and SETUP_LINE_STEEP are each identically defined
(except whitespace) in evas_line_main.c

Reviewers: cedric, jpeg

Subscribers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D4681
2017-02-28 13:07:13 +09:00
Cedric BAIL 30c5225bec evas: properly disable Evas_Object event catching once we can't access Evas anymore. 2017-02-27 15:05:35 -08:00
Jean-Philippe Andre 81fbd54c17 evas: Optimize out some nop calls to evas text
Some property set calls to Evas Text are NOPs if the property was
already set to the same value. Avoid doing any work then.

This adds a missing intercept call (size_set as it's overriden
by Evas.Text).
2017-02-21 17:49:22 +09:00
Jean-Philippe Andre 3cb6d55ef0 evas: Fix module memleak during evas_shutdown
This fixes a minor memory leak during shutdown.

Note: This does NOT perform the dlclose (and still leaks the
Eina_Module descriptor). Calling dlclose leads to a whole lot
of other issues, so we avoid it.
2017-02-21 15:15:51 +09:00
Jean-Philippe Andre 8736af5d4a evas: Fix compilation warning (unused variable) 2017-02-21 15:15:06 +09:00
Jean-Philippe Andre 51765b8b9f evas: Avoid data_scope_get in internal function 2017-02-21 12:24:56 +09:00
Jean-Philippe Andre a55e0ced26 evas: Inline part of clip_dirty
clip_dirty is called A LOT. Unfortunately this patch does not
result in very measurable improvements.

**********************
Note about this merge:

After this series of patches, the CPU usage for a certain test
case has significantly gone down:

Based on c0e6a8d698c17fc16f9b67fc9 (upstream before git push):
NS since frame 2 = 28910806786 , 2937 frames = 9843652 / frame

After this patch:
NS since frame 2 = 19218592951 , 2928 frames = 6563727 / frame

1.18:
NS since 2 = 13105584220 , 2961 frames = 4426066 / frame

As we can see, 1.18 remains *much* better than 1.19. I'm still
struggling trying to figure out why (clip_recalc is called more,
but the call tree is hard to decypher).

The test case is:
EINA_FREEQ_BYPASS=1 ELM_TEST_AUTOBOUNCE=100 \
  elementary_test -to "Scroller 2"

EFL was compiled with GCC 6.3.1 with -O3 -g

@optimization
2017-02-21 11:23:07 +09:00
Jean-Philippe Andre cbb804f814 evas: Inline part of clip_recalc
This function was moved out of inline (see d7c6fca6c0) but
unfortunately the early checks at its beginning are likely
to result in an early return. Inline this part so we get back a
better performance. Inlining the whole function does not improve
the performance, as GCC simply gives up with inlining.

Note: Between 1.18 and master the number of calls to clip_recalc
has simply blown out. It is thus crucial to find out where those
calls come from but also micro-optimize the function itself. This
patch does the latter only.

@optimize
2017-02-21 10:52:40 +09:00
Jean-Philippe Andre 0d555dda7f evas: Optimize out some calls to data_scope_get
Within evas when we know an object is marked as is_smart, then
we know it's a smart object. :)

@optimize
2017-02-21 10:52:40 +09:00
Jean-Philippe Andre 98092224ef evas: Avoid more calls to efl_isa in clip_set
No need to verify that the clip is an evas object unless we're
actually going to change said clipper. This has a minor effect,
removing ~10% of all calls to efl_isa (0.1% of everything).

After all those efl_isa patches the number of calls has dropped
from 1.9M (~3.05%) to ~570k (0.76%). More can still be done,
surely. Now efl_isa accounts for ~0.05% of my CPU usage according
to perf top (down from ~0.7%).

If edje uses EO APIs instead of legacy image APIs, then many of
the remaining calls will vanish.

@optimization
2017-02-21 10:52:40 +09:00
Jean-Philippe Andre d150cdfd9d evas: Assume object is valid and avoid call to efl_isa
In an internal function we should be able to safely assume an
object is indeed a smart object.

@optimization
2017-02-21 10:52:39 +09:00
Jean-Philippe Andre 9a83113b9f evas: Optimize out more calls to efl_isa
In relative smart move, we only need to check once that the object
is indeed a valid smart object. This drops the call count from ~1.02M
to ~785k.

@optimization
2017-02-21 10:52:39 +09:00
Jean-Philippe Andre e8acf4762b evas: Avoid call to EAPI inside internal code
This avoids calling efl_isa and locking the async mutex.

In callgrind analysis, this reduces the count of calls to
efl_isa from 1.96M to 1.02M.

@optimization
2017-02-21 10:52:39 +09:00
Jean-Philippe Andre 05cc5ab940 evas: Avoid useless calls to eo_data_scope_get
Use an internal variant of the function for evas when we already
have the protected data pointer.
2017-02-21 10:52:39 +09:00
Jean-Philippe Andre 24b5eedd6d evas: Remove useless call to evas_object_async_block
It's already called from the intercept cb.
2017-02-21 10:52:39 +09:00
Jean-Philippe Andre 60dc978857 evas: Inline checks for post-event cb call
This avoid excessive calls to a real function.

@optimization
2017-02-21 10:52:39 +09:00
Marcel Hollerbach 75908799dc evas: do not error for smart class objects
Summary: this should fix some spamming in e

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4675

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2017-02-20 11:38:02 +09:00
Daniel Hirt 66dd98ed6b Canvas text: fix clearing existing style
Fixes T5187.
This fixes a leak in evas_textblock_style_user_pop, that made use of the
new key-based efl_canvas_text_style_set api.

@fix
2017-02-19 19:09:16 +02:00
Jean-Philippe Andre 4fdd30bce5 evas: Silence useless WRN message on canvas del 2017-02-16 21:56:11 +09:00
Jean-Philippe Andre a014b21400 evas: Flush post-event callbacks only when needed
This avoids flushing the post-event cb queue when processing
recursive events. See 54e5841b2f.
2017-02-16 20:17:12 +09:00
Jean-Philippe Andre 54e5841b2f evas: Re-fix post-event cb by supporting recursion
The previous patch (b184874fa5) was preventing
post-event callbacks from triggering any form of input event,
including side-effects due to mouse,in. In fact by tracking
which exact events we want to post-process we can support
proper recursion. This fixes crashes in Bryce.

I'm not changing the documentation as this is still a dubious
code design.

Fixes T3144
Fixes T5157
2017-02-16 19:51:06 +09:00
Jean-Philippe Andre b184874fa5 evas: Strengthen post-event callbacks
See T3144 that I marked as Wontfix.

Bryce in E manually feeds events from a post-event callback
resulting in Evas going insane and leading to frequent crashes.
The ideal solution (for E) would be to ensure that everything works
smoothly, the input event data is valid up until the post-event cb
is called, etc... Unfortunately, with recursive events the exact
order of operations may be messed up: the post-event

I don't want to add yet more complexity to Evas events here (it's
already spaghetti all over the place) so I'm simply blocking any
new event feed when running the post-event callback list.

It's not possible to just freeze the events (I tried, it failed).

**********************
Some more explanation:

post-event callbacks are used to implement reverse-order logic
where the on-hold flag of an input event may be set by an event
listener that does not come first.

Here's a situation to illustrate: scroller A inside scroller B.

As events are propagated from children to parents (assuming the
propagate flag is set), we'd assume the events to go first to A
and then to B, which means a mouse wheel event would make the
inner-most scroller (A) scroll, and the outer-most scroller (B)
wouldn't budge.

But as things are designed, A and B are not simple evas objects,
and the actual event-catching object is a top-most transparent
rectangle (top-most in Z stack order). Since A is inside B, B's
rectangle BR is over A's rectangle AR, thus catches the wheel
event first. But in terms of UX we still want A to scroll, not B.

The solution then is to reverse the event processing order and
post-event callbacks are the way to do that. This comes with the
consequence that the event_info needs to remain valid until the
post-event is called, and stay the same (so that the on-hold flag
set by A can be read by B).

Recursive events (by explicit feed or modifying the canvas so
that mouse,in or mouse,out are triggered) mess with this logic,
and trigger the post-events too early (event is not fully
processed) or too late (event_info is not valid anymore... and
crash!).

Thanks @raster for explaining the goal of post-event callbacks!
2017-02-16 18:10:18 +09:00
Jean-Philippe Andre e434653fc2 evas: Ensure post-event cb push is called from an event cb
This rejects calls to evas_post_event_callback_push() that don't
originate from inside an input event callback.
2017-02-16 16:26:42 +09:00
Jean-Philippe Andre 5335352eda evas/doc: Add warning about post_event_callback_push 2017-02-16 16:25:50 +09:00
Carsten Haitzler 0a28cb97af Revert "Revert "evas textblock: keep previous size when the calculation is skipped""
This reverts commit b8beb6834b.

this now actually works... for some mysterious reason... ? :/ i am
baffled. go back in until we can find the issue then...
2017-02-16 10:31:11 +09:00
Stefan Schmidt 63bd03f2ed evas_loader: add since tag to newly added task_cancelled API 2017-02-15 12:31:51 +01:00
Jean-Philippe Andre d689afccae group: Track calls to group_del
After a long search I found that fileselector was not calling
super.group_del on deletion, leading to the use of dangling pointers.
So let's verify that group_del is properly called.

See T4598
2017-02-15 20:11:22 +09:00
Jean-Philippe Andre cfd5f11410 textblock: Fix dangling data ref
In this case data_scope_get is more appropriate as the data is
indeed stored on the stack (function scope) and not somewhere else.

After this last fix I see no eo_debug error logs in elementary test.
Yay! eo_debug is now usable :)
2017-02-15 15:58:21 +09:00
Jean-Philippe Andre a568d26f72 evas & elm: Fix invalid uses of efl_data_ref(obj, NULL)
The data class should be specified for debug purposes.
Also, this fixes invalid uses inside the smart object
implementation where it assumed that the smart data was part
of the eo data. It may not (legacy objects).
2017-02-15 15:35:38 +09:00
Jean-Philippe Andre b7213f2d64 evas_render: Remove data_unref that has no data_ref 2017-02-15 15:35:38 +09:00
Carsten Haitzler b8beb6834b Revert "evas textblock: keep previous size when the calculation is skipped"
This reverts commit c39855a8ac.

This actually breaks 1 dialog in e (app exited with error exit code).
it worked everywhere else so i thought it was good. seemingly not
after i saw one of these. revert D3595
2017-02-14 18:10:05 +09:00
Youngbok Shin c39855a8ac evas textblock: keep previous size when the calculation is skipped
Summary:
When a size calculation is skipped because of some reasons,
Evas Textblock should keep same size with the previous size.
@fix

Test Plan: N/A

Reviewers: raster, herdsman, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4659
2017-02-14 16:17:02 +09:00
Jean-Philippe Andre 5d55fe0321 evas key: Add null safety to EAPIs
This avoids a crash with Bryces. This does not fix the problem
with the Bryce itself. Ping @zmike

See T5157
2017-02-14 15:21:50 +09:00
Jean-Philippe Andre 65ae1c812c evas: Fix double free in post events
A use of the post event callback in Bryce triggered a double free
as an event was being processed but not yet removed from its list,
leading to an invalid state of the Eina_List.

Also remove obj from struct as it is unused.

Fixes T5157
2017-02-14 15:21:25 +09:00
Carsten Haitzler 76244d89a7 vpath file - add a keey property to know if obj should be kept around
if its a file downloading (to a tmp location) or a zip/tar/whatever
file being extracted also to a tmp location and that tmp file needs to
be removed after ...you need to keep the obj around to know when to
delete the file. this makes the keeping optional and you query if the
vpath obj is meant to be kept or not. if it's not it's safe to del
immediately.

this cuts down 1 obj per image obj/edje obj when generally unused.
save some mem.
2017-02-13 16:51:49 +09:00
Marcel Hollerbach 008711b3b0 evas_table: abort when there is already the option struct
otherwise we would just reuse that struct. This results in
freeing/writing/reading the memory twice.

This error message should give the dev a tip on what went wrong, instead
of leaving cryptic valgrind messages and crashes.

This fixes the sysinfo desktop gadget in enlightenment.

ref T5173
2017-02-12 00:10:05 +01:00
Marcel Hollerbach c59a8ddebc evas: fix child position when the container is moved
when the position of the container is changed the children should also be
repositioned, so setting the changed flag.

The visual effect where you saw that was in luncher where items of the
bar did not get fully up.
2017-02-12 00:10:05 +01:00
Carsten Haitzler c1c7ad8360 evas color copy neon asm - declare tmp as output not input for warning--
less warnings - use output not input for tmp var. much better.
2017-02-12 00:32:22 +09:00
Carsten Haitzler f4088a1f74 evas smooth scaler - fix warning where indenting is misleading
indeed the indenting is misleading. fix.
2017-02-12 00:29:49 +09:00
Carsten Haitzler 40af2935af evas blit main - put mmx funcs in ifdefs as they are not used on arm
fixes warning
2017-02-12 00:29:49 +09:00
Carsten Haitzler 5424345c46 evas draw func get - make pixels as unused as it is in neon asm cases
also a little shitespace cleanup and correct ()ing of ops to clean
this function up a bit.
2017-02-12 00:29:41 +09:00
Carsten Haitzler f00dbd2252 evas convert color - neon asm - fix warning by casting - no side effects
it's a warning one way or another so reduce noise with a harmless case
as passing in a pit ro a 32bit type is more restrictive than the ptr
it accepts (an 8bit type)
2017-02-11 23:13:00 +09:00
Cedric BAIL 5ac43bb26d evas: use the right structure to not over allocate memory.
Eina_Trash is designed for storing cached pointer without any memory
consumption. Please be careful with EFL memory consumption.
2017-02-10 14:27:29 -08:00
Stefan Schmidt baf4813d87 docs: efl filters: document all new data structures for efl filters 2017-02-09 14:47:21 +01:00
Carsten Haitzler a84370fcd8 evas yuv convert - fix unused increments
this removes useless yp1 += and yop2 += as they are SET int he loop.
this fixes 1367510 and 1367511
2017-02-08 21:19:39 +09:00
Carsten Haitzler 020535eea1 evas mask filter - remove unused increment of msk as its set in-loop
msk is set inside the loop body, so msk += is pointless.

fix CID 1367512
2017-02-08 21:19:39 +09:00
Carsten Haitzler 5bb34aa2ce evas cserver client - remove dead if 0'd code 2017-02-08 21:19:39 +09:00
Carsten Haitzler 93abad0a59 evas callbacks - add comment to note fallthrough is intended
swtich fallthrough oftenis not intended but in this case it is, so
documente it as such.
2017-02-08 21:19:39 +09:00
Carsten Haitzler b61e69a956 evas cache image - remove double unlock of image task locks.
this is indeed a bug and fixes coverity CID 1367492
2017-02-08 21:19:39 +09:00
Carsten Haitzler 144092b2fa evas image obj - remove logically dead code
coverity is right - it's logically dead code. fix CID 1367774
2017-02-08 21:19:39 +09:00
Carsten Haitzler b5348e47cc evas image load - remove unreachable code
it's just printing a warning anyway and coverity CID 1368210 is right
as it says it's unreachable. fix.
2017-02-08 21:19:39 +09:00
Carsten Haitzler c657d41fc3 evas image load - handle null module handle in case
this fixes CID 1368338
2017-02-08 21:19:39 +09:00
Carsten Haitzler 5d8034f87d Revert "evas_async_events: integrated Ecore_Pipe in evas_async_events"
This reverts commit ea0492e0c6.

this drops software engine rendering to like 5-10fps! or at least
visually about that... not tested enough at all!
2017-02-08 11:26:26 +09:00
Carsten Haitzler 08ea619ed0 evas destructor - take lock arount post render list while freeing
this should fix CID 1369019 though really shouldnt be an issue...
2017-02-08 08:48:35 +09:00
Carsten Haitzler 6d458544a6 evas textblock filter data set - avoid crash on freeing data binding
if balue is NULL the data binding is removed and freed, but we don't
return at that point but instead fall back to using/replacing the
databinding.

this fixes CID 1369022
2017-02-08 08:48:35 +09:00
Ivan Furs ea0492e0c6 evas_async_events: integrated Ecore_Pipe in evas_async_events
Summary:
Integrated Ecore_Pipe in evas_async_events

Reviewers: #eflete, raster, jpeg, vtorri, artem.popov, cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4622

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-02-07 14:17:47 -08:00
Cedric BAIL bb928cbb93 evas: we now need to initialize ecore as it is a dependency. 2017-02-07 14:17:47 -08:00
Cedric BAIL 1b4a2c0ac9 evas: more hardening of evas access map.x 2017-02-06 10:51:50 -08:00
Cedric BAIL e1bd14f933 evas: harden check on map presence. 2017-02-06 10:51:50 -08:00
Carsten Haitzler 51638afbeb evas render - drop eo overhead by using ptrs we already have
several calls, specifically evas_object_change_reset,
evas_object_cur_prev, and evas_object_clip_changes_clean that are
called directly or indirectly as part of evas render on at least every
active object if not more, were doing full eo obj lookups when their
calling functions already all had the eo protected data looked up.
tha's silly and just adds overhead we don't need. my test dropped
_eo_obj_pointer_get overhead in perf profiles from 4.48% to 2.65%. see:

   4.48%  libeo.so.1.18.99            [.] _eo_obj_pointer_get
   4.23%  libevas.so.1.18.99          [.] evas_render_updates_internal
   2.61%  libevas.so.1.18.99          [.] evas_render_updates_internal_loop
   1.68%  libeo.so.1.18.99            [.] efl_data_scope_get
   1.57%  libc-2.24.so                [.] _int_malloc
   1.42%  libevas.so.1.18.99          [.] evas_object_smart_changed_get
   1.09%  libevas.so.1.18.99          [.] evas_object_clip_recalc.part.37
   1.08%  libpthread-2.24.so          [.] pthread_getspecific
   1.05%  libevas.so.1.18.99          [.] efl_canvas_object_class_get
   1.01%  libevas.so.1.18.99          [.] evas_object_cur_prev
   0.99%  libeo.so.1.18.99            [.] _efl_object_event_callback_legacy_call
   0.87%  libevas.so.1.18.99          [.] _evas_render_phase1_object_ctx_render_cache_append
   0.82%  libpthread-2.24.so          [.] pthread_mutex_lock
   0.81%  libevas.so.1.18.99          [.] _evas_render_phase1_object_process
   0.79%  libc-2.24.so                [.] _int_free

vs now the improved:

   4.82%  libevas.so.1.18.99          [.] evas_render_updates_internal
   3.44%  libevas.so.1.18.99          [.] evas_render_updates_internal_loop
   2.65%  libeo.so.1.18.99            [.] _eo_obj_pointer_get
   2.22%  libc-2.24.so                [.] _int_malloc
   1.46%  libevas.so.1.18.99          [.] evas_object_smart_changed_get
   1.04%  libeo.so.1.18.99            [.] _efl_object_event_callback_legacy_call
   1.03%  libevas.so.1.18.99          [.] _evas_render_phase1_object_ctx_render_cache_append
   0.97%  libeina.so.1.18.99          [.] eina_chained_mempool_malloc
   0.93%  libevas.so.1.18.99          [.] evas_object_clip_recalc.part.37
   0.92%  libpthread-2.24.so          [.] pthread_mutex_lock
   0.91%  libevas.so.1.18.99          [.] _evas_render_phase1_object_process
   0.84%  libc-2.24.so                [.] _int_free
   0.84%  libevas.so.1.18.99          [.] evas_object_cur_prev
   0.83%  libeina.so.1.18.99          [.] eina_chained_mempool_free
   0.80%  libeo.so.1.18.99            [.] efl_data_scope_get

of course other things "increase their percentage" as oe overhead now
dropped, and things seem to move around a bit, but it does make sense
to do this with no downsides i can see as we already are accessing the
protected data ptr in the parent func.
2017-02-04 11:49:56 +09:00
Gustavo Sverzut Barbieri 8dc853f230 ifdef RUN_IN_TREE logic.
This logic is only needed for autotools, cmake will replicate the
installation file structure and thus eina_prefix works out of box.
2017-02-03 12:36:38 -02:00
Cedric BAIL 62d6b4072c evas: simplify waiting logic for image decoding as we do not need lock and cond with Ecore_Thread infra. 2017-02-02 10:30:39 -08:00
Cedric BAIL ddf1907217 evas: make sure we always wait in the correct thread. 2017-02-02 10:30:39 -08:00
Carsten Haitzler 3cb947d1a5 evas grid smart - fix divide by 0
if object happens to be 0x0 then we can get a divide by 0... fix!

@fix
2017-02-02 08:50:49 +09:00
Carsten Haitzler a909ca1f68 evas draw context - reduce size and allocations and frees
so a little perf fun shows malloc/free/realloc/etc. are, combined a
reasonable overhead. this reduced malloc overhead for draw contexts so
whne we duplicate them or create new ones, we re-use a small cache of
8 of them to avoid re-allocation. just take the first one from the
list as it really is that simple. mempool would not have helped more
here and cost more overhead.

@optimize
2017-01-31 23:01:50 +09:00
Carsten Haitzler e2fe31fc09 evas async preload - fix valgrind issue in accessing image after free
cache flish and async end ended up dropping some cacneled images that
were then accessed further in the cancel func for the thread. this
fixes that

@fix
2017-01-31 23:01:50 +09:00
Chris Michael 51684536f0 Revert "evas: Fix resource leak in evas_module_find_type"
Reverting this as it causes crashes in Terminology and other EFL apps.
Needs investigation.

This reverts commit 8b2ca30eb5.
2017-01-25 09:40:58 -05:00
Chris Michael 8b2ca30eb5 evas: Fix resource leak in evas_module_find_type
Coverity reports a resource leak here if we successfully load the evas
module as we were never freeing the eina_module here. Previously we
would just return the evas module without proper cleanup of the
eina_module. This patch fixes the leak by calling eina_module_free if
we successfully load the evas module.

Fixes CID1367503

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-25 09:09:38 -05:00
Chris Michael 54655d65a3 evas: Minor formatting fix
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-25 09:09:38 -05:00
Carsten Haitzler a279852c86 evas - proxy - fix clipping of proxy renders that broke terminology
so proxies just rendered nothing when used in terminology. they used
to work for the tab switcher (ctl+shift+home). this now works again.

there is a good chance this may break something else though... what i
can't seem to find...

this fixes T5131
2017-01-25 18:44:58 +09:00
Jiyoun Park 68f63b01e2 evas_inline: Change the return value for readabilty 2017-01-24 15:36:05 +09:00
Chris Michael d965c8a3ce evas-object-textblock: Remove set but unused variable
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-23 09:35:33 -05:00
Carsten Haitzler 09f4cd8cfa evas grid smart - don't abort if smart data is null - return safely
it's unssocial of us to abort unless we truly have a fatal error we
cann't get over... so remove from grid smart.

@fix
2017-01-23 11:20:37 +09:00
Youngbok Shin 65be73c58f evas font: revise evas_font_init/reinit functions
Summary:
The static flag in evas_font_init() was not useful.
It could be replaced by checking address of "fc_config".
FcInitReinitialize() function was not necessary to reload
configure and font files in Evas. It would be meaningful
when only Evas use Fontconfig's function without own "fc_config".
To reload "fc_config", calling FcInitLoadConfigAndFonts() is enough.
And there is no need to load "fc_config" from evas_font_reinit()
when "fc_config" is not prepared.

Test Plan: N/A

Reviewers: herdsman, raster, tasn, cedric, woohyun

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4612
2017-01-21 19:00:46 +09:00
HyunSeok Cha 3fbf234b32 evas: Fix very unlikely crash in evas render
During a stress test of EFL a seemingly impossible crash happened, where
one of object's cow fields was NULL inside evas_object_was_visible.
Nothing in the code flow can possibly lead to this situation but
it still happened. For information, the object's delete_me flag was 2 in
evas_object_is_active() called from _evas_render_phase1_object_process().
So let's add a small safety check for crash prevention.

Differential Revision: https://phab.enlightenment.org/D4608
2017-01-20 14:11:00 +09:00
Felipe Magno de Almeida a1f2db255b cxx: Modify how to generate C++ headers and allow cyclic dependencies
Allow cyclic dependencies in generated C++ headers by changing order
of includes and creating forward declarations.
2017-01-18 22:47:04 -02:00
Daniel Hirt 099c1f2d83 Ui text: fix size evaluation for default setup
Now the size evaluation will query for the native size of the
canvas.text object, and continue with calculations to set the min size
of itself.
This fixes a bug in containers where the widget's size wasn't picked up.

Also, the canvas.text object wasn't reporting 'changed' on text changes.

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2017-01-17 14:35:30 +09:00
Jean-Philippe Andre 1b881704db evas: Fix classic text styles with filters in textblock
Textblock filters support RGBA input which means legacy styles
can be used in conjunction with filtering. Not recommended, but
it works. Note: We may decide to drop this behaviour and use
alpha-only inputs for simplicity.

Still missing: support for filtering strikethrough, underline, or
embedded items
2017-01-17 14:35:30 +09:00
Jean-Philippe Andre f616b3ee15 evas: Fix crash with invalid input in textblock 2017-01-17 14:35:30 +09:00
Jean-Philippe Andre 28fafbb1f4 evas: Redraw tb filters if source changed
Filters can have sources like image proxy, and should trigger
a redraw in case the source has changed. Since we cache the
filter's output, we need to first check whether the sources
have changed before reusing a previous output buffer.
2017-01-17 14:35:30 +09:00
Jean-Philippe Andre 6b07c2554a evas: Fix textblock filters with large items
If the line height is different from the text item height (eg.
because there are large embedded items) then we need to add
an extra offset to the draw commands.

Note: items themselves are not filtered (yet, at least).
2017-01-17 14:35:30 +09:00
Jean-Philippe Andre 3a98d0ea88 evas: Drop unused buffer from textblock filters
This is a first step before implementing some form of caching of
those output buffers. At the moment, it very aggressively deletes
any buffer that falls outside the clip of the textblock object.
Note that this is better in terms of memory usage but way worse
in terms of render performance (eg. scrolling). If a textblock
is a proxy source then we keep all the buffers (the entire object
is to be rendered).

+ fix a crash
2017-01-17 14:35:29 +09:00
Jean-Philippe Andre 59bda411b9 evas: Fix unsafe code in previous patches (tb filters)
This also reduces the overhead required per text item when there
is no filter.
2017-01-17 14:35:29 +09:00
Jean-Philippe Andre 13c62c10e1 evas: Introduce event style_insets,changed for tb
This will be triggered in the rare case when a textblock's
insets are changed (ie. the padding due to filters or style).

This fixes invalid sizing in the test case in elm (due to a
lack of event after program_set).

@feature
2017-01-17 14:35:29 +09:00
Jean-Philippe Andre 40f4acae75 evas: Implement buffer caching for textblock filters
This is the most basic optimization that needs to be done for
filters to be useful: cache the output rgba buffers for each
filtered element. Hopefully this doesn't leak. I'm not making
any promises about that though :)
2017-01-17 14:35:29 +09:00
Jean-Philippe Andre 93965db815 evas: Implement filter sources support for textblock 2017-01-17 14:35:29 +09:00
Jean-Philippe Andre 1512741b48 evas: Implement filter_data_set for textblock
This is a function that allows passing variables from C or EDC
to the filter's Lua code. Useful in particular for color classes
from EDC.

This data would be the global data but we could eventually add
a markup tag to specify a data value per filter instance. For now
a single data value per tb object should be more than enough though.
2017-01-17 14:35:29 +09:00
Jean-Philippe Andre 421df2eec6 evas: Adjust tb padding from gfx filters padding
This makes gfx filters padding work just like the standard style
padding, which means the tb user must offset the object position
by -l, -t and increase the object size by l+r,t+b.
2017-01-17 14:35:28 +09:00
Jean-Philippe Andre 26221aac1f evas: Remove unused 'inset' field from tb items 2017-01-17 14:35:28 +09:00
Jean-Philippe Andre de47187dde evas: Fix tb filters spanning over multiple items
If a gfx filter was applied to a block of text spanning over
multiple text items, then it would improperly render as the
filter context was stored in the format, rather than the text
item. This is fixed by using a list of contexts in the format
node rather than a single context.
2017-01-17 14:35:28 +09:00
Jean-Philippe Andre 5f1c993d17 evas: Set gfx filters by name on textblock
This allows for much simpler markup, and easier tracking of
which filters are in use, etc... Next: data and sources.
2017-01-17 14:35:28 +09:00
Jean-Philippe Andre cb294320dc evas: Experimental textblock support for gfx filters
This is only for testing purposes for now. Eventually we need
to fix the following things:
- terrible performance (cache buffers)
- force redraws based on filter padding
- expand textblock padding based on max filter padding
- add sources, data and a filter name/code hash
- test! :)
2017-01-17 14:35:28 +09:00
Jean-Philippe Andre 301e80a10a evas: Remove most extra data from filter mixin
This should save a bit of memory for all image & text
objects. This exploits the previous patch for the post-render
job queue added to evas, and simplifies this bit of code.
2017-01-17 14:35:28 +09:00
Jean-Philippe Andre c2ba0939d8 evas: Add a very simple post-render job list
This will be used by the filters
2017-01-17 14:35:27 +09:00
Jean-Philippe Andre b2a4039bda evas: Refactor evas filters a bit
This is a preparation step for (experimental) textblock support.
Textblock objects won't have a single filter, and the buffer's
geometry wouldn't be that of of the object itself. Thus a few
internal APIs need to be reworked first.
2017-01-17 14:35:27 +09:00
Jean-Philippe Andre 3f24b6ea2f evas: Use eina_slstr to simplify render debug
Only enabled if REND_DBG is manually enabled inside evas_render.c
2017-01-17 14:21:13 +09:00
Daniel Kolesa cb3f8304e0 eolian: change eo file syntax @virtual_pure -> @pure_virtual 2017-01-13 15:44:09 +01:00
Cedric BAIL 8f1c071d6a eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
Carsten Haitzler 0690d47880 evas image preload - fix race condition that stops preloads
so if you queue a preload while a cancel is still pending the new
preload never happens. this fixes that. now it does but checking for
leftover tasks in the cancel cb and rescheduling a preload thread.

@fix
2017-01-06 17:46:13 +09:00
Jiyoun Park 8ee0c30eb0 evas_image_main: fix memory leak of camera app -PLM[P161206-03545]
In gl engine, image objects try to unload image's pixel data after creating or updating the texture.
but image entry's reference is still 1, it is added to the pending_unloads list,
and it is cleaned when evas render function.

If elm image use preload feature, preload_done flag is true, so this image data cannot be removed from
pending_unloads list, it cause memory leak.

I think it is better to free image's pixel data in evas_cache_image_unload_data,
(not add to the pending_unloads list)
but it it complicated to modify.

so I'll remove the code to check preload_done flag in  evas_common_rgba_pending_unloads_cleanup function.
this flag check was added because of gl preloading, but now gl preloading feature is disabled.
this flag is related with https://phab.enlightenment.org/D2823

I tested photocam, but crash doesn't occur anymore, even though removing flag check.
2017-01-06 15:40:09 +09:00
Carsten Haitzler 3842e87d3a evas image skip header - more fixes for when images fail to load
this fixes some more issues i have found in using skip header like if
the file doesn't exist etc. recent feature add so not a fix.
2017-01-06 09:38:44 +09:00
Jean-Philippe Andre a6e54c6109 evas: Slightly optimize size hints
Object size hints are stored in a specially allocated struct
(from a mempool) and even a call to size_hint_set(default_values)
will allocate this struct. This patch avoids unnecessary allocations.

Originally I was trying to fix an infinite recalc loop but it
magically vanished...
2017-01-05 17:26:14 +09:00
Carsten Haitzler 309e490bc0 efl header skip with preload - fix seg on invalid file
for invalid files we didn't handle this case, so fix it - recent
commit/feature add.
2017-01-04 20:18:42 +09:00
Haegeun Park 0ac95c40bc [Evas GL Thread 1] evas: Fixed indentation of evas_thread_render.c
Summary:
@fix

Change-Id: I411fe6d75dc7b15c0d7f19f165ea4b0cc3b28c12

Reviewers: sung, jpeg, cedric, raster

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4525
2017-01-04 15:30:21 +09:00
Guilherme Iscaro 194d6b2f9b Evas Canvas: Remove focused_objects property.
Summary:
This property is not needed and it will only increase the API size.
One can simple achieve the same behaviour by simple doing:

//C code...

Eina_List *l;
Evas_Device *dev;

devices = evas_device_list(evas, NULL);

EINA_LIST_FOREACH(devices, l, dev)
{
   Evas_Object *obj;

   if (evas_device_class_get(dev) != EVAS_DEVICE_CLASS_SEAT)
      continue;
   obj = evas_canvas_seat_focus_get(dev);
   //Do something with the focused object.....
}
//More C code...

Reviewers: bdilly, barbieri, conr2d, jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4547
2017-01-04 15:30:21 +09:00
Jaeyong Hwang 3f84aac424 evas: Add code to change the object's chage flag in evas_object_image_data_set
Summary:
When using evas_object_image_data_set(obj, data), if you give the value of data to NULL, the image data is free.
However, Since you have not set a flag in the image object to be modified, it will not be processed in the next render loop.
Eventually, the image data is erased, but you see the image before it was erased.
If evas_object_image_data_update_add() is used to solve this problem, the operation of the function is skipped because the values of w and h in image are 0.
So, If data is NULL, I modified it to call evas_object_change() in evas_object_image_data_set().

Test Plan:
Sample code

{F61599}
{F61601}

Reviewers: Hermet, jiin.moon, eunue, jpeg

Reviewed By: jpeg

Subscribers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D4520
2017-01-03 17:42:12 +09:00