@fix
this fixes T1987 - the commit that broke it was:
commit 18d494489c
Author: Cedric BAIL <cedric.bail@samsung.com>
Date: Fri Jan 3 16:20:53 2014 +0900
eet: use eina_swap*() function instead of custom slower one.
I know. This title does not explain anything. Whatever.
This fixes the following issue:
- Mask a genlist (big mask)
- Each item has an icon masked (small mask)
- Apply a map to the genlist
- Scrolling the genlist
--> The big mask still works but totally screws up the
small icons with masks.
Note: Once again this patch only affects code paths where an
object is a mask.
Yeah, mixing maps and masks of masks in a genlist leads
to tons of amazing bugs :)
This commit removes x,y from the "mask" field in an object,
as they are duplicates of cur->geometry.{x,y} but were not
properly kept in sync.
This patch fixes a situation of:
- A genlist in a map
- Each item has an icon masked
- Scrolling the genlist
--> The masked items would not render properly before this
patch.
Remaining known problem:
- Mask a genlist (big mask)
- Each item has an icon masked (small mask)
- Apply a map to the genlist
- Scrolling the genlist
--> The big mask still works but totally screws up the
small icons with masks.
Note: These changes look scary just before the release
but I would have to backport them to 1.13.x as they
definitely are bug fixes. Also, they only concern
code paths used exclusively by masking.
All those masking bug fixes become harder to explain. But here goes:
- Take a genlist, apply a mask to it (for example put everything
in an elm_layout). Also play with various objects in the genlist.
- Also apply a map to it (for instance, elm_transit zoom).
--> Now some elements will be masked, some others will not,
and some may even not render at all.
This patch restores a mask in the current drawing context, instead
of just unsetting it.
In a situation where an object with mask of mask is in a map
(Yes! It can happen!) the masks would not get properly "multiplied".
Now the problem is that some objects still seem to bypass some
masks... Hmm...
get them
Summary: Some keys in certain keyboard layouts should not be repeated
so add a test which uses xkb to inform us if this key supports
repeating.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
When the examples were compiled they used to through the below warning
$ gcc -o ecore_con_client_simple_example ecore_con_client_simple_example.c `pkg-config --libs --cflags ecore ecore-con eina`
ecore_con_client_simple_example.c:11:0: warning: "EINA_UNUSED" redefined
# define EINA_UNUSED
^
In file included from /usr/include/eina-1/Eina.h:215:0,
from /usr/include/ecore-1/Ecore.h:304,
from ecore_con_client_simple_example.c:5:
/usr/include/eina-1/eina/eina_types.h:112:0: note: this is the location of the previous definition
# define EINA_UNUSED __attribute__ ((__unused__))
^
So removed these defines as they are no longer required now.
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1919
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This is a left-over from a previous fix a few weeks ago.
The point of this "if" is just to avoid writing the COW value
if not needed.
For reference:
commit f876cf31f8
Author: Jean-Philippe Andre <jp.andre@samsung.com>
Date: Tue Dec 23 18:57:45 2014 +0900
Evas masking: Fix invalid geometry after mask redraw
Summary: If we fail to duplicate stdin, we should write out an error
and exit appropriately.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This reverts commit f52f562891.
This is reverted because it breaks eina_file_path_sanitize when using
"/../" in paths, for example:
eina_file_path_sanitize("/home/../mydir/myfile")
returns: "/mydir/myfili"
What invalid read size does this fix? Why was no test case specified?
Anyway, this change affects too much code to leave it in like this.
It is unable to do recursive reference such as:
> Having group A with GROUP part that has group B as source.
> Having group B with GROUP part that has group A as source.
Here we have a loop that is not allowed by edje_cc, so edje_edit also need
to check this case.
@fix
If "keyname" and "key" are NULL an Ecore_Event_Key is allocated
throught calloc. strlen() is called on these variables, which crashes
the program. As it is not correct to return a key event for NULL
keys to ecore, it is preferrable to return NULL and exit the function
before the key event is allocated, which fixes the crash in the same
time.
@fix
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This should not be an ABI regression on the platform where it work (Unix). It is on Windows,
but the API was unusable at all without this change, so this is a necessary breakage to
unbreak things.
@fix
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
It is easy to create edj collections that aren't working at all and
edje_cc easily allows user to do that.
For example:
> Having group A with GROUP part that has group B as source.
> Having group B with GROUP part that has group A as source.
In this case edje_cc compile source code perfectly, but if user try to load
this edje as layout or use together with edje_edit it will cause unexpacted
and wrong behaviour.
@fix
Reviewers: seoz, Hermet, reutskiy.v.v, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1908
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Also disable typed expression validation for now. The interfaces are not
finished yet so some things will fail validation because of unexistent
type definitions.
Fixes T2064.
@fix
Some of edje_edit functions allows to set up NULL instead of string,
but by using _edje_if_string_free() function it should set variable into NULL,
so previous data won't appear anymore.
@fix
Summary:
This is an attempt at fixing:
- T1767: The ultimate evil map & clip bug
Force recalculation and re-propagation of clipper geometry
after or just before a map is applied (only when transiting
between map enabled and map disabled).
I realized that doing clip_unset+clip_set in the E widget
code would fix the issue, but this is not a solution that
makes a lot of sense.
Unfortunately I have no idea about the side effects of this
patch, especially in terms of performance.
Fixes T1767 and maybe T1630.
Test Plan:
Open PackageKit popup in E, check the animations
and that clipping works fine both during, before and after
the animations.
Reviewers: raster, cedric
Reviewed By: cedric
Subscribers: cedric, Hermet
Maniphest Tasks: T1767
Differential Revision: https://phab.enlightenment.org/D1897
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: This fixes compile issues when building evas software engine
using xcb. When calling xcb_outbuf_free, the Render_Engine has no 'ob'
field, so remove that call. Also fix call to
render_engine_software_generic_init using the proper function
parameters.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Fix several compile issues with software engine when compiled
against xcb. This fixes an improper call to
evas_software_xcb_outbuf_flush with improper parameters, and adds a
missing EINA_UNUSED to that function.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Depth is not used in the ecore_x_window_full_new function, so
add missing EINA_UNUSED
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: Let's use the proper variable names when assigning return
mask values.
NB: How did all this even get Into git with someone checking it and
compiling it ??
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: If we do not get the property we are looking for here, then
reset the Proper variable to 0. This fixes a build break.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>