Commit Graph

23880 Commits

Author SHA1 Message Date
discomfitor 0c34c3d940 split ecore_con_dns free functions into one that removes from list and one that does the freeing 2013-12-20 22:20:01 -05:00
Stefan Schmidt ce48dd9927 release: Update NEWS with latest two fixes 2013-12-20 09:04:46 +01:00
Cedric BAIL 6abe2480fb evas: no loader should ever close an Eina_File anymore.
This would lead to some crash in EFM if relying on Evas to find the file format by
trying all its loader.

This should fix T674 and T668.
2013-12-20 08:54:49 +01:00
Carsten Haitzler 90c2320ab7 evas - tiler - fix missing clip of first rect to outbuf size
stable release - cherry-pick me!
2013-12-18 20:39:29 +09:00
Stefan Schmidt 3443f24bcd release: Update NEWS and bump version for efl 1.8.3 release 2013-12-18 09:55:38 +01:00
Tom Hacohen 3b57d1f057 Evas textblock: Fixed range_deletion bug with multiple visible formats.
This makes the tests added in 8bee8853ae
pass.

Thanks to Youngbok Shin for reporting.
2013-12-16 15:47:08 +00:00
Youngbok Shin 6cb11b8577 Evas test textblock: Added a test for a broken range_delete case.
This fixes bad integration by me (Tom) of Youngbok's patch in
42a06f24d8.
2013-12-16 15:47:08 +00:00
Cedric BAIL 906490e7d7 emotion: revert to fast sed to use the right eina log domain. 2013-12-16 15:27:52 +09:00
discomfitor 81a36a7e14 bugfix: eldbus code generator struct members named "proxy" should not be passed to eina_value_free.
come on.
2013-12-15 00:07:22 -05:00
discomfitor b4ab560724 bugfix: make eldbus generated code not crash on every single generated event
this is pretty depressing to find after it's been in git for over a year
2013-12-14 19:56:00 -05:00
Tom Hacohen fda5f7bda2 Evas textblock: Fixed deletion of ranges ending with visual formats.
This is a regression introduced in:
3f3ad67616
2013-12-13 14:45:42 +00:00
Youngbok Shin e5f0357d60 Evas textblock: Added more range_delete tests.
These tests check for a regression with deletion of ranges ending with
visual formats.
Thanks to Youngbok Shin for sending me the tests.
2013-12-13 14:45:04 +00:00
Cedric BAIL 5f92b97014 emotion: use emotion log domain instead of eina one. 2013-12-13 13:03:58 +09:00
Cedric BAIL c5c1ee243b emotion: fix potential memory leak when webcam register fail. 2013-12-13 13:03:58 +09:00
Cedric BAIL 5fc2fe8625 emotion: lower warning on webcam access error to information (Not critical anyway). 2013-12-13 13:03:58 +09:00
Carsten Haitzler 1e2d434fc3 evas - fix gif loader drop of image data sometimes (image dump/flush)
stable release - cherry-pick me!

this fixses some still gifs going missing.
2013-12-12 18:45:01 +09:00
Carsten Haitzler 8469ca25fd evas gif loader - address animated always being true
this addresses CID 1135790 and removes useless checks.
2013-12-12 18:44:52 +09:00
Carsten Haitzler 50f786f24a gif loader - handle theoretical NULL loader_data case 2013-12-12 18:44:43 +09:00
Cedric BAIL 1c3ae0202c autotools: let's try this variant for detecting c++ compiler availability. 2013-12-11 10:44:58 +09:00
Jean-Philippe Andre ee563dbd3b Evas tests: Add invalid markup test
Commit 0cb048f9b6 fixed a crash in Textblock where
a couple "key=val" had an empty value ("key=").
2013-12-10 20:57:52 +09:00
Jean-Philippe Andre 2c7aca370a Evas textblock: Fix crash with empty markups values
Markup parsing will segv if a value string is empty,
as in "<style=>". Sure, this is invalid, but hey, it could
definitely be used from an app or even by a user writing
his own markups :)

The internal doc says this function expects an item to be
of the form "key=val" but there are no checks beyond the
presence of "=" in the string before calling it.
2013-12-10 20:17:03 +09:00
Carsten Haitzler 0a6d2b9d17 evas - fix gif loader cpu overuse - used too much cpu to decode anims
stable release - cherry-pick me!

the evas gif loader used way too much cpu to decode animated gifs
because in the rewrite that made it correct, it did not store the
current gif file handle and state, thus each frame it would have to
decode all frames before that one before finally decoding the final
one. that means to decode frame 200, it decoded frame 1, 2, 3, 4 etc.
all the way up to 199 THEN decoded 200 on top, so decode cost became
progressively more then further through the animation you were.

this fixes that by storing state and file handle and allowing you to
iterate through.
2013-12-10 16:38:51 +09:00
Rafael Antognolli 1808adbe7a ecore_imf/wayland: Only call hide_input_panel on im_context_hide().
There's no need to call it on text_input_leave too, otherwise this would
be called twice, the one from text_input_leave possibly being called
after the focus was regain already by a text input, causing the bug
described in T237.

This fixes T237.
2013-12-09 14:26:36 -02:00
Cedric Bail 1fa0821e4f autotools: work around buggy macro to force C++ compiler detection. 2013-12-09 21:41:42 +09:00
Rafael Antognolli f34a8c639c ecore_evas/wayland: Update withdrawn property, and inform state_changed. 2013-12-09 09:21:55 -02:00
Jean-Philippe Andre 13cb9e18f4 Evas/cserve2: Fix crash during shutdown
If an image failed to load, and cserve2 returned an error message,
then the File_Entry was freed, but not removed from the hash.
Solution: remove entry from the hash, let the callback free the data.
2013-12-09 18:03:19 +09:00
Jean-Philippe Andre e3c612f4b2 Evas: Fix crash in GL engine(s) during preload cancel
In my config, running terminology with the GL engine and under
cserve2, some image could not be loaded. The tex argument
in evas_gl_preload_target_[un]register was NULL, leading to
an immediate crash.
2013-12-09 18:03:18 +09:00
Chris Michael 88604d5450 Fix opaque windows becoming transparent after hide() then show().
This fixes Phab #T611. Previously, windows which were opaque would
become transparent after being hidden and then shown. We fix that by a
call to ecore_wl_window_alpha_set when the window gets shown. This
patch also brings the wayland_egl hide code more inline with the shm
hide code by testing if the surface does not match the existing one.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-12-09 07:35:56 +00:00
Stefan Schmidt 22560c63ea release: Update NEWS and bump version for efl 1.8.2 release 2013-12-08 20:29:22 +01:00
Chris Michael 80ff126242 Set engine aspect function pointer
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-12-05 12:36:40 +00:00
Chris Michael 183eaa7a3c Add common function prototype for setting ecore_evas aspect ratio
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-12-05 12:36:24 +00:00
Vostokov Sergey 47822dc344 evas - Clip mark performance improvement
stable release - cherry-pick me!

We propose a patch that reduces graph traversal work in
evas_object_child_map_across_mark(). It fixes a few particular
slowdowns around Tizen applications, including 0.6 seconds slowdown.

evas_object_child_map_across_mark() does not seem to need to
recursively call itself on the same object many times. Yet we have
noticed that in some scenarios it repeatedly traverses the same
subtrees of objects over and over again, whenever there is more than
one way of reaching these subtrees. In the production issue mentioned
above, certain elm_object_part_content_set() call results in millions
of recursive calls of evas_object_child_map_across_mark(), taking
~0.6sec total.

We propose to allocate a hash table during top-level call to store all
objects visited, and return from sub-calls instantly whenever we are
called over an object we already visited.
2013-12-05 21:08:57 +09:00
Chris Michael 763ce86252 Add code to deal with min, max, step, aspect, and base sizes.
Properly fix efl wayland elm window resize problem.

This adds support for min, max, step, aspect, and base size properties
when resizing a canvas under EFL Wayland.

This Also Properly fixes raster's report for EFL Wayland elm windows not
resizing properly. Previously, when resizing an elm window in wayland,
a portion of the window would draw outside the frame.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-12-05 12:04:14 +00:00
Carsten Haitzler c56cbe2991 evas - fix overdraw + too many rects problem found in some expedite tests
stable release - cherry-pick me!

there way a problem with software rendering - it rendered some areas
more than once per frame due to overlapping rectangles. it also had
more rectangles to cover the same update area that it should have had.
this fixes this.
2013-12-05 20:14:03 +09:00
Carsten Haitzler bfff138c34 efreet - fix recusrion checks need to pop as well as push.
stable release - cherry-pick me!

this fixes a lack of popping the efret recursion stack handler. this
wasn't done in 1.8 and is a bug.

Conflicts:
	src/bin/efreet/efreet_desktop_cache_create.c
	src/bin/efreet/efreetd_cache.c
2013-12-05 20:13:46 +09:00
Cedric Bail 6dd40dc649 evil: use the right ifdef. 2013-12-05 18:55:03 +09:00
Carsten Haitzler d757addd64 efreet - protect efreetd from recursing too far to save overhead and mem
an errant path made its way into my efreet cache. this had a
side-effect of causing efreetd to scan my entire $HOME recursively
to monitor everything. while the original cause was $HOME getting in,
we shouldn't have efreetd sit and consume scan all of $HOME when this
is far from a normal situation. the recursive scanning is there ot
handle some minimal levels of subdirs in app directories, but not an
entire filesystem, so this mitigates the effects of errant cache data
by limiting the amount of recursion allows for icon dirs and desktop
dirs to 8 and 3 levels respectively.

Conflicts:
	src/bin/efreet/efreetd_cache.c
2013-12-04 20:32:09 +09:00
Daniel Juyung Seo 8e6df617bb ecore ecore_glib.c: fixed documentation about glib integration always configure option.
--enable-glib-integration-always was changed to --with-glib=always in efl 1.8.

I backport this from master to efl-1.8 branch because this is critical to some users.
It's an apparant documentation bug!
2013-12-04 19:46:30 +09:00
Cedric Bail 3e711ba635 eina: increase hash matching inside of Eina_Hash.
This is the correct implementation of the idea developped in Lucas De Marchi's blog :
http://www.politreco.com/2013/09/optimizing-hash-table-with-kmod-as-testbed/

This give an interesting +15% for all Eina_Hash user whatever hash function they use. The inlined
djb2 is still the fastest one and all other give very close result. It does increase memory foot
print, but as much as the previous way of doing it.
2013-12-04 18:36:32 +09:00
Cedric Bail 62ff602d4b evas: fix loader to properly define _XOPEN_SOURCE for Solaris. 2013-12-04 18:36:32 +09:00
Cedric Bail 72681319d4 Revert "eina: check if the complete hash match before checking if the key match during children walk."
This reverts commit 295babadb1.

The implementation of that said optimization is actually wrong.
2013-12-04 18:36:32 +09:00
Cedric Bail 95fb0e6d73 evas: bugfix in evas_render of not maintaining changed flags on object correctly.
This bug is particularly visible in EFM video preview ( T 539 ). The problem is
that the logic for changed has evolved over time. At the beginning Evas canvas
was flat and could be handle in an array. It was then not using the changed flag
that much. This day, we are living with a tree and we need to propagate the
changed flag to the parent, so that when we walk them we only need to walk the
active objects and don't spend our time on branch that are completely static.

Sadly things did collide here. We remove all object that have been rendered
from the pending_objects array. That does include any smart object that was
processed even if one of the child was not. Once any of the child of that not
processed object is marked changed, it will be propagated up to the first
parent that is changed. As the parent of that one are marked as not changed
when evas_render walk the tree, he is blocked really early in the process and
never get a chance to detect that the child of a not changed object did change
and tada !

The fix is to add all the parent of all the object that are in the pending_objects
array back into the pending_objects list. So they will always be marked as changed.
Another alternative to this logic would have been to change pending_change to
filter out those and keep them around. I choose the first solution as I think it
will be more robust to catch all the parent in all case.
2013-12-03 16:44:28 +09:00
Rafael Antognolli 77b6699720 Backport branch 'withdrawn' into efl-1.8
Implement withdrawn_set/unset on Wayland engines. It basically calls
ecore_evas_show/hide. Some fixes were done to show/hide on both EGL and
SHM backends too.

This set of patches should fix T155.
2013-12-02 18:21:22 -02:00
Rafael Antognolli 506d466166 ecore_evas/wayland: Add a function to cleanup the frame callback.
This callback must be manually destroyed and removed on
ecore_evas_hide(), because it won't be delivered anymore after the
surface is destroyed. If the callback still exists, the engine will find
it and avoid doing a new redraw until it is finally called.

Maybe the correct thing to do is to keep this callback in the
Ecore_Wl_Window struct, and have some functions to set/unset it, so it
gets destroyed when the window is hidden. Or when the surface is
destroyed.
2013-12-02 18:18:11 -02:00
Rafael Antognolli f95ac0ae39 ecore_evas/wayland_egl: Unset the surface on window hide.
We must unset it, so the Evas engine knows that it has to do all the
setup to destroy the EGL surfaces associated with it. And in the case of
an ecore_evas_show, recreate everything again.
2013-12-02 18:18:11 -02:00
Rafael Antognolli 43ffeb639b ecore_evas/wayland: Implement ecore_evas_withdrawn_set.
Just call ecore_evas_show/hide inside the function.
2013-12-02 18:18:11 -02:00
Rafael Antognolli a21cb3052c evas/wayland_shm: Don't use a global var to store the sent buffer.
When an Ecore_Evas is hidden, it will destroy the buffer swapper. When
it's shown again, it will try to attach a new buffer, that can be same
buffer. If that global var is still pointing to the old buffer, it can
match to it again and avoid sending a new buffer. So, just put this sent
buffer var in the buffer swapper, and it will get set to NULL when the
swapper is destroyed and created again.

This should fix an intermitent problem of ecore_evas_show() not always
working after an ecore_evas_hide() on the wayland_shm engine.
2013-12-02 18:18:11 -02:00
Carsten Haitzler 2af23d998a v1.8.1 2013-12-02 12:55:00 +09:00
Carsten Haitzler 4186fadce4 FUCK - remove logic to silently add -release names to libtool builds
sneaky hidden m4 rule to ADD -release to shared lib names IF profile
!= dev profile. come on! why do that? seriously. this snuck in and was
undetected because i recompiled things against efl and thus things
linked against the new releasename libs. this requires an efl 1.8.1.
argh!
2013-12-02 12:53:51 +09:00
Daniel Juyung Seo 4b7d85acd6 ecore ecore_x_e: check 0 and -1 for ecore_x_window_prop_card32_get() return value which mean fail.
- ecore_x_window_prop_card32_get() returns:
  -1 if the property was not successfully fetched.
  0 if the property exists but has no elements.

This is a backport of master branch commit e2467724da.
2013-12-02 12:50:16 +09:00