Commit Graph

2869 Commits

Author SHA1 Message Date
Jean-Philippe Andre e7a67dd13b Evas filters: Remove complicated displacement flags
The displacement effect is way too complicated. Let's keep it
simple and have only one displacement map format (RG + Alpha).

Here's what's missing now:
- Alpha support, to blend in the input with a variable intensity
- Extra padding (see below)

Also, the intensity VS. map values are not perfectly defined yet.

Problems: How to create a complete mirror effect (map needs to go
over boundaries... add extra padding to the buffers).
2014-02-07 17:33:17 +09:00
Jean-Philippe Andre b54eb40006 Evas filters: Optimize Text redraw with filters
Fix case when a proxy source has changed: need to fully render
the effect again.
2014-02-07 17:33:17 +09:00
Jean-Philippe Andre 7a53d39304 Evas filters: Factorize blend map logic 2014-02-07 17:33:17 +09:00
Jean-Philippe Andre 40fd036d8d Evas filters: Implement fill mode in blend
None, repeat (x,y) and stretch (x,y) are now working for RGBA
blending. The same logic shall be applied to alpha as well.
2014-02-07 17:33:17 +09:00
Jean-Philippe Andre df60cd30c0 Evas filters: Start implementing stretch for blend
The fillmode is ignored when blending... for now.
First, implement none and stretch options for RGBA.
2014-02-07 17:33:17 +09:00
Jean-Philippe Andre 12ddad2867 Evas filters: Reuse output buffer in Text object
This is the first possible optimization: save the rendered
text (since we already have the output buffer anyways), and
reuse it if the text + filter didn't change.
2014-02-07 17:33:17 +09:00
Jean-Philippe Andre 2da17927da Evas filters: Implement fill with padding
Add parameters l, r, t, b to clip the fill area.
While l=x and t=y, the width and height of the clip are determined
at filter run-time, since we don't know the buffer size before.
2014-02-07 17:33:17 +09:00
Jean-Philippe Andre b5b6f6ef3c Evas filters: Fix padding in blur with offset
If ox, oy were set, the padding was wrong in blur.
2014-02-07 17:33:17 +09:00
Jean-Philippe Andre 82032d494f Evas filters: Implement curve script API
Currently supports interpolation modes "none" and "linear".
Cubic interpolation is not implemented yet.
2014-02-07 17:33:17 +09:00
Jean-Philippe Andre 7000907cd3 Evas filters: Move scaling to a common file
NOTE: Alpha scaling is NOT supported.
It could be faked in 3 expensive steps:
1. Draw to RGBA
2. Scale RGBA
3. Draw to Alpha.
2014-02-07 17:33:17 +09:00
Jean-Philippe Andre 40bb984b42 Evas filters: Implement mask stretch in RGBA blend
Brutal method for now: allocate YET ANOTHER buffer,
render scaled image to it (smooth scaling, oh yeah),
use this as a new mask.

For now, supports:
Alpha Input, RGBA mask, RGBA output, X,Y,XY stretching
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 9623e1f238 Evas filters: Pass fillmode to the filters
I just need to actually implement them, now :)
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre a87ef5735d Evas filters: Introduce "fill" mode in script API
This would mean: repeat (X,Y) or stretch (X,Y), for buffer
operations where it means something (blend, bump, ...)
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 37eb6b6233 Evas filters: Change default buffer size to input size
This should make more commands work intuitively.
Now we still need to specify how to repeat or stretch buffers
when running commands.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 78a3eaaecd Evas filters: Change buffer creation API in script
Syntax was: buffer(name=bla,alpha=bool);
Changed to: buffer:bla(alpha);

There's a semicolon between buffer and its name because ALL whitespaces
are discarded. This might prove useful sometime in the future, so let's
keep it this way for now :)
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 7fbbf9eabe Evas filters: Use common color parse function 2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 0ad8b02c16 Evas filters: Fix compilation after merge from master
- CRIT becomes CRI
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre f723d8af8f Evas filters: Fix automatic buffers with Evas_Object_Text 2014-02-07 17:33:16 +09:00
Jean-Philippe Andre c0996b0669 Evas filters: Reduce padding to the minimum acceptable
Padding was brutally calculated by suming ALL the filters'
individual paddings. Now we try to be a bit smarter and propagate
the padding between buffers in the filter chain.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 22b8377255 Evas filters: Rename Text's special_effect into filter_chain
For consistency with Textblock.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 9da4789b66 Evas filters: Disable styles when filter_chain is set
Since the default theme includes a dark shadow behind normal
lines text (white on dark grey), we need to skip those when using
a filter program.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 109894bb56 Evas filters: Add fill command
This will simply clear the target buffer with the specified color.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 0a450b3ace Evas filters: Fix blur with small buffers
If the buffer is smaller than the blur kernel, then artifacts appear
and CRASHES happen because we read/write out of the buffer bounds.

Output buffer must be larger than the kernel diameter.
Input buffer's size is used to reduce the blurring effect on the edges.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 91e20084c1 Evas filters: Clear buffers after allocation
malloc() and mmap() don't return empty buffers, so blending on top
will present tons of artifacts.
Visible mostly on very small buffers as they are malloc()'ed from
previously used memory segments.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre aa945c25e0 Evas filters: Use strcasecmp in the parser
We don't care about the case for our language.
EVEN for buffer names, so beware :)
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre a5abbf784e Evas filters: Add basic support for clip in blend
Right now, clip is used only when blending RGBA surfaces.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre a0634dc04e Evas filters: Allow empty commands
If an instruction line contains only ';', skip it.
This is a convenience for Textblock and C++ style comments.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 0450e027e7 Evas filters: Add Eo APIs and some comments
The entry points on evas text are there!
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 5e78ce5eeb Evas filters: Implement style parser
So, the (font) effects will be described by a string. It's
basically a new language (yeah yeah sorry), VERY simple, based
on function calls a la Python, with sequential and named arguments.

This string is intended to be passed directly to an evas text object
and embedded into the evas textblock's markup tags.

This file implements both the basic parsing functions, the
compilation of instructions into a queue of commands, and the glue
code for the rest of the filter infrastructure.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre d7ed901ffd Evas filters: Implement bump maps
These bump maps implement two light effects at once:
- 3D Shadows
- Specular lights

The specular light is activated by a flag.
Another flag enables compensation for darkening/whitening of
horizontal surfaces.

NOTE: This implementation is VERY SLOW.
It uses double values and divisions all over the place.
It might be possible to optimize by computing two LUTs before
running the algorithm.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 40c7f90bdc Evas filters: Implement displacement maps
Displacement maps are a simple but powerful tool to move pixels
around in a buffer, based on a displacement map (image).

Currently, various modes are implemented:
- X, Y or XY displacement
- Alpha map or RGBA map where R and G only are used

An intensity parameter is given as well.

Some of these might not be useful, we can just strip them off when
the final API is decided.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 6458df7a65 Evas filters: Implement color curves filter
Color curves are a very simple tool to alter the colors of an image,
on a per-pixel basis. This implementation will simply map each pixel
to a 256 bytes buffer, provided by the application.

NOTE: There are no convenience functions yet for easy curve
generation, but this is the plan (give point A, B, B and interpolate
between them to generate the 256 values array).
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 84caa5902e Evas filters: Implement blur functions
Currently supported:
- Box blur for Alpha and RGBA
- Gaussian blur for Alpha and RGBA

Motion blur is not implemented.

These effects are SLOW. Gaussian blur is based on a true gaussian
curve for small radii, or a sine-based approximation.
The true gaussian might need to be removed for consistency, since
it gives slightly different results from the sine one (less blur).

It is not possible to mix Alpha and RGBA surfaces in this filter.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 65d779c7a3 Evas filters: Implement other masking functions
These functions differ from normal blending as they will use
a mask on top of input and output buffers.
So, basically they blend input+mask into a third buffer output.

If output is RGBA then mask or input MUST be RGBA.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 3f0f703f50 Evas filters: Implement blend functions
Currently, blending supports the following:
- Alpha --> Alpha (simple alpha masking)
- Alpha + Color --> RGBA (same as mask)
- RGBA --> RGBA (normal blend)
- RGBA --> Alpha (desaturate using A=(R+G+B)/3)
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre af106ffc81 Evas filters: Import main implementation file
evas_filter.c contains the entry points for the evas filters subsystem,
in particular, the filter API, the (yet very basic) buffer management
system, the command queue and main context handling functions.

Right now, the Evas engine is left untouched, so these implementations
will work ONLY in the software engine.

NOTE: This will not compile on its own (thus, not added to Makefile.am),
as it will require the filter implementations to be linked.
2014-02-07 17:33:16 +09:00
Jean-Philippe Andre 5a06208230 Evas filters: Import main header file
evas_filter.h contains the API declarations for the internal
Evas Filter module: enums, functions and some documentation.
2014-02-07 17:33:16 +09:00
Carsten Haitzler dc9d37de0b ecore-x xpresent - fix build if you DONT have xpresent there. 2014-02-07 17:33:01 +09:00
Doyoun Kang 50b941f907 ecore_x: added @since comment about ecore_x_e_illume_window_state_send
Reviewers: seoz

CC: zmike, cedric, raster

Differential Revision: https://phab.enlightenment.org/D526
2014-02-07 17:06:22 +09:00
Jean-Philippe Andre 9adbbe0bd1 Evas fonts: Pass RGBA_Image instead of DATA32 buffer
Since we want to be able to draw to alpha buffers, it's
easier if we pass the whole image struct instead of just
the data pointer.
2014-02-07 15:38:43 +09:00
Jean-Philippe Andre 160d012559 Evas text utils: Check syntax in color parse
If the color string is not correct (ie. not #RRGGBBAA, #RGBA, #RGB, #RRGGBB),
return an error.
2014-02-07 15:38:42 +09:00
Jean-Philippe Andre 2928a2d2da Evas: Move _format_color_parse to common file
This (simple) code should be shared between Textblock and Filters.
2014-02-07 15:38:42 +09:00
Jean-Philippe Andre d8301fae6e Evas: Add support for Alpha buffers
Evas is an RGBA only engine, BUT we also use some alpha masks,
especially in the font rendering pipeline.
This commit adds basic support for alpha buffer operations
(blend and copy).

RGBA_Image can then point to either alpha-only data, if
its colorspace is grey.
2014-02-07 15:38:42 +09:00
Jaehwan Kim 71c7d0e9ad ecore_x: Add ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_OVER.
This Atom is for accessibility.
In the touch screen, when the finger moves continuously, it is uesd.
2014-02-07 14:51:28 +09:00
ChunEon Park 5efa4f9305 evas/common - code refactoring.
tiny change for readibility.
2014-02-07 13:39:11 +09:00
Doyoun Kang 541ef547ab ecore_x: Added API - ecore_x_e_illume_window_state_send
Summary:
there exists ecore_x_e_illume_window_state_set and ecore_x_e_illume_window_state_get,
but no ecore_x_e_illume_window_state_send.

Reviewers: raster, seoz, cedric

Reviewed By: seoz

CC: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D512
2014-02-07 13:05:00 +09:00
Vyacheslav Reutskiy 793a1a5c1c edje: edje_calc - fix deffect by find the part description when 'approximate' is EINA_FALSE
Reviewers: cedric, raster, seoz

Reviewed By: cedric

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-02-07 12:16:21 +09:00
Tom Hacohen ec41f67be4 Evas font: Change font fallback to not depend on fontconfig >= 2.11.
Apparently, it was available for quite a while. It's just a case of confusing documentation
that made me think the minimum version is 2.11.
2014-02-05 13:54:41 +00:00
Tom Hacohen 9cc7e69338 Evas textblock: Improved error messages when detecting errors in markup. 2014-02-05 13:51:22 +00:00
Youngbok Shin c48c9827ff evas: textblock - Added Null checking in evas_textblock_text_markup_to_utf8 before calling eina_strbuf_append_length API.
Summary:
When input string has non-finished markup tags or escaped tags,
eina_strbuf_append_length is called with Null string.
There is a Null checking in eina_strbuf_* API, but it will print error message when input string is Null.
Strictly speaking, *_markup_to_utf8 API could be used with any kind of input string.
So, we need to add Null checking for removing the useless error message.

Test Plan:
Call the API like the following code.
evas_textblock_text_markup_to_utf8(NULL, "test_text&&&&");

ERR message will be printed.

Reviewers: woohyun, tasn, seoz, Hermet, hbr4570

CC: cedric

Differential Revision: https://phab.enlightenment.org/D493
2014-02-05 13:23:55 +00:00
ChunEon Park eea4fbff6a evas/map - added comment to do. 2014-02-05 20:55:38 +09:00
Tom Hacohen 17d028f944 Evas font: Added support for font fallback for eet/edje fonts.
This is a long awaited feature that has been requested years ago.
Fontconfig finally added the support needed to make it happen, so here
it is.

I added a fontconfig query to look for similar fonts in case we loaded a
font from eet/edje/file(no fontconfig). This now works quite well.

Still missing: if you load a bold/italic/whatever font directly (set the file)
without putting ":weight=bold" you will not get run-time emboldenment if
only non-bold fonts are found.

This unfortunately depends on very recent fontconfig version (#ifed out
when unavailable), so only people with fontconfig >= 2.11 will enjoy
this feature.
2014-02-04 10:44:11 +00:00
Tom Hacohen 1c44890491 Evas font: Renamed evas_load_fontconfig and added support for a base set.
Renamed it so it'll be more obvious that it's internal.
Added the parameter as the first step towards supporting edje font
fallback using fontconfig.
2014-02-04 10:44:11 +00:00
zmike c3ece04211 edje embryo reset timer should probably call the reset function 2014-02-03 18:23:50 -05:00
zmike 0ee6327035 edje embryo now supports reset_timer()
works the same as ecore_timer_reset()
2014-02-03 17:19:31 -05:00
Mike Blumenkrantz a5a907023d edje freeze count can no longer become negative 2014-02-03 11:52:06 -05:00
Cedric BAIL 90cd40753d Patcna: fix wrong widgth and height in eina_rectangle computation logic.
Reviewers: cedric, raster, seoz, Hermet, bluezery

Reviewed By: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-02-03 15:35:44 +09:00
Carsten Haitzler ef2127c900 evas - fix tom's bold-killer from 2cb9db171e 2014-02-02 10:59:33 +09:00
Jihoon Kim ab712a9966 evas: fix doxygen warning in group of Evas_Key
Evas_Common.h:5243: warning: end of file while inside a group
2014-02-01 14:19:38 +09:00
Jihoon Kim 4fb75474d8 edje: fix the mismatched argument name with doxygen
warning: argument 'above' of command @param is not found in the argument list of edje_edit_part_restack_part_above(Evas_Object *obj, const char *part, const char *below)
2014-02-01 13:32:57 +09:00
Jihoon Kim a759462078 edje: call imf reset before selecting text area 2014-02-01 10:32:53 +09:00
Tom Hacohen 19cde8f194 Evas font: Added support for the freetype spacing tag.
This doesn't work nicely, as for some reason fontconfig doesn't work
nicely with ':spacing=mono' without a font name.
Doesn't work with fc-match either. It does work with fc-list, but that's
not what we'd like to use. It could be just an issue with my local
fontconfig configuration.

This fixes T865 although the problem is now with freetype.
2014-01-29 14:36:22 +00:00
Tom Hacohen 2cb9db171e Evas font: Added support for weight/width/slant font tags.
This let's you set those directly, instead of using the style tag.
2014-01-29 14:10:43 +00:00
Tom Hacohen 22813f5b52 Evas textblock: Fix selection with bidi text.
This is a regression introduced in
548e548632.

This is really bad, and essentially broke selection geometry for bidi
text. Very serious.

The problematic code assumed that the range comparison for the items
assumed the item marked with 1 is always logically before the item marked
with 2, which is just not true.
2014-01-29 13:27:45 +00:00
Daniel Kolesa 871597f8c2 fix evas_tiler bug (makes evas get stuck in an infinite loop there in certain scenarios) 2014-01-29 10:00:29 +00:00
Daniel Juyung Seo 23a36b642b efl: fixed documentation typos. 2014-01-29 00:19:41 +09:00
Tom Hacohen d9ef2b1ace Edje entry: Fix memory corruption (of by one in allocation).
This fixes T867.
2014-01-28 10:10:05 +00:00
Daniel Juyung Seo 4b457c5f2d evas_render: avoid unnecessary assignment. 2014-01-28 01:54:49 +09:00
Tom Hacohen 2d4ba9e8dd Edje entry: Fix anchor href parsing.
It should now correctly work with arguments surrounded with either
quotes or spaces.
2014-01-27 15:17:31 +00:00
Jihoon Kim 325bf9ab78 entry: clear selection before selecting new one 2014-01-27 21:34:09 +09:00
Carsten Haitzler 0df9bd2cdb ecore-audio: remove src files that are never compiled 2014-01-26 21:35:17 +09:00
Daniel Kolesa f2c9fcf5f1 a small ecore_getopt bugfix 2014-01-24 10:12:41 +00:00
Carsten Haitzler aa761eaae9 evas - textgrid - clear up unused var warning 2014-01-24 10:01:23 +09:00
Jean-Philippe Andre 345c1ad26d evas: textgrid - fix crash in terminology with rare characters.
So I have a weird crash in terminology.
Reproduction path:
eet -x /path/to/elm/theme/default.edj edje/images/537

Scroll back in the terminal buffer, to show the entire file: CRASH.

Reviewers: cedric, tasn

CC: cedric, raster

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-01-24 09:47:08 +09:00
Jérémy Zurcher 0078769f13 eina_tls: fix calls to TlsFree 2014-01-23 10:40:02 +01:00
Carsten Haitzler 86d9b4ed71 Registers a fallback handler for a given subsection of the object hierarchy.
Summary:
Goal of this patch is cover in Eldbus library function dbus_connection_register_fallback.
http://dbus.freedesktop.org/doc/api/html/group__DBusConnection.html#gac4473b37bfa74ccf7459959d27e7bc59

Reviewers: stanluk, raster

Reviewed By: raster

Differential Revision: https://phab.enlightenment.org/D479
2014-01-23 15:45:22 +09:00
Jérémy Zurcher 316dc52d2f eina_tls: add eina_tls_cb_new(Eina_TLS *key, Eina_TLS_Delete_Cb delete_cb)
Summary:
   delete_cb is called at thread exit for each Eina_TLS keys used by the thread

Details:
   posix:
      pthread_key_create(key, delete_cb); does it
   win32/wince:
      eina_tls_free/new un/registers key&&cb into a static eina_list.
      eina_tls_set add the key to an eina_list in Eina_Thread_Win3.
      this list is cleared and callbacks are called in _eina_thread_join()

Test Plan: win32/wince has to be tested, I have no setup to do it.

Reviewers: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D489
2014-01-23 14:50:08 +09:00
Jihoon Kim 1d7d554348 edje: Support to set or retrieve selection of ecore_imf 2014-01-23 11:26:52 +09:00
Jihoon Kim 4fb04c3cd0 ecore_imf: fix to call function of immodule when the input method property is changed 2014-01-23 11:19:54 +09:00
Jihoon Kim 7b30c41443 ecore_imf: Add selection_set callback type to allow Input Method to select a region of text 2014-01-23 11:02:51 +09:00
Jihoon Kim fa165f0902 Add ecore_imf_context_selection_get API to allow Input Method to get the selected text. 2014-01-23 10:44:00 +09:00
Jean-Philippe Andre 981bdc16f6 Evas: Fix proxy rendering for animated objects
An invalid optimization was implemented in proxy rendering.
We can't assume a proxy is a smart object.

Refer to 5cefa00d0a.

Fixes T832.

Proxy rendering is still broken when using cserve2... :(
2014-01-22 17:02:27 +09:00
Mike Blumenkrantz 052fc85cd3 okay, bring back xrandr < 1.4 compat for ecore_x_randr_output_name_get
apparently I read the commit order wrong and this fix went in for 1.4.0, not 1.3.2, which means anyone who has 1.3.2 has been having lots of fun crashes for the past 24 hours
2014-01-21 16:07:38 -05:00
Mike Blumenkrantz 8cbd7c1622 nul terminate string from ecore_x_randr_output_name_get 2014-01-21 14:58:31 -05:00
Jean-Philippe Andre cc8fa1da45 Evas: Fix MMX mask function _op_copy_p_mas_dp_mmx()
This function does the following operation:
COPY pixel x mask --> dst

But it wasn't iterating over the source. So it was repeating
the value of the first pixel over and over again.

Is this even used anywhere? RGBA + alpha mask function!?
2014-01-21 15:43:10 +09:00
Mike Blumenkrantz 1feed7a1ae ecore_x_randr_output_name_get fixme removed
this was a fixme which was likely written sometime before July 2010 when the bug was fixed, just prior to the 1.3.1 release. I think it's probably okay to require that release since it's been 3+ years.
2014-01-20 22:16:18 -05:00
Carsten Haitzler 414b447f54 Revert "eet: do not load data when the file is open in read/write mode."
This reverts commit f8b0322704.

this breaks efreets icon cache. i have been noticing this since
yesterday across all my machines once i update just efl. i tracked it
down to this commit.
2014-01-21 09:18:52 +09:00
Carsten Haitzler 1a9ebc02c0 _op_blend_c_dp_neon miscalculation fix
Summary:
When processing random data result of this function differs from C variant in more than 50% cases.
This difference is due to alpha calculation, in C code :

 a = 256 - (c >> 24)

in NEON:

"vmvn.u8  q7,q6       \n\t"
// ie (8 bit)~(c>>24)    ===   255 - (c>>24)

We cant just add "1" as overflow will occur in case (c>>24) ==  0  (we use only 8 bit per channel in vector registers)
So here is the solution:
copy *d right before multiplication and add it to the result of it later.

This makes the function slower by 20-30% but it is still at least 2 times faster then C code.

Reviewers: raster

Differential Revision: https://phab.enlightenment.org/D455
2014-01-21 08:50:34 +09:00
Gustavo Sverzut Barbieri 0d1d51f64e eet_data: guarantee double-word alignment for temporary stack buffer.
The code was giving enough memory to store doubles and longs, but they
could be unaligned as "unsigned char" allows 1-byte alignment, while
double may require 8 bytes.

By specifying the array as "long long" we force certain alignment in a
platform independent way. As this array is small enough and
short-lived, the number of items were not changed, this results in
more bytes on the stack but it shouldn't matter.
2014-01-20 21:44:42 -02:00
Daniel Kolesa edc548fac5 ecore_getopt: support for per-category help listing 2014-01-20 17:32:28 +00:00
Jaehyun Cho 4432cd2e8e [ecore_x] Fix to handle paste null data case.
Summary: Do nothing when null data is pasted.

Reviewers: Hermet, raster

Reviewed By: raster

CC: seoz, raster, cedric

Differential Revision: https://phab.enlightenment.org/D473
2014-01-20 22:15:33 +09:00
Carsten Haitzler d9ef5e143c ecore - fix CRIT -> CRI macro 2014-01-20 20:23:22 +09:00
Youngbok Shin 443d1e700a edje: Call _edje_entry_imf_context_reset in _edje_entry_user_insert.
Summary:
When user paste text to elm_entry, _edje_entry_user_insert is called.
We need to reset a prediction buffer just like _edje_entry_text_markup_insert.

Reviewers: seoz, Hermet, woohyun, tasn, jihoon, raster

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D461
2014-01-20 15:59:51 +09:00
Carsten Haitzler 20d0015470 eina-inlist - handle prepend/append relative if list is null (empty)
stable release - cherry-pick me!
2014-01-20 15:16:56 +09:00
Cedric BAIL f8b0322704 eet: do not load data when the file is open in read/write mode.
I do think that it was a left over from previous file format. Removing
this memcpy should make Enlightenment startup faster and should reduce
by 500KB the memory it use.
2014-01-20 13:04:07 +09:00
Cedric BAIL 55a56fe5c0 eina: add eina_{str,bin}buf_manage_read_only_new_length().
It is sometime useful to start from a defined buffer, but to not touch it
until needed. This make life of caller more easier as they don't need to
duplicate the buffer themself as Eina will now take care of that.
2014-01-20 13:04:07 +09:00
Cedric BAIL 342dd72e37 eina: add eina_binbuf_append_buffer() and eina_strbuf_append_buffer(). 2014-01-20 13:04:07 +09:00
Cedric BAIL 00d4f5cf1c eet: reduce memory usage of Eet internal structure by removing useless structure. 2014-01-20 13:04:06 +09:00
Youngbok Shin c85414b157 edje: Add changed signal emit in _edje_entry_imf_event_delete_surrounding_cb
Summary:
"_edje_entry_imf_event_delete_surrounding_cb" changes text of entry.
When the callback function is called and the entry is changed,
we need to notice to applications that the entry is changed.

Reviewers: seoz, Hermet, tasn, woohyun, jihoon, raster

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D460
2014-01-20 12:54:46 +09:00
Chris Michael 24ac2e278d Fix doxy typo
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2014-01-19 12:06:05 +00:00
ChunEon Park 892b1c5be3 ecore_evas - applied macro to check rotation state.
also, let the potrait compare on the higher priority.

if you can suggest better macro name, then please modify it.
2014-01-18 22:26:10 +09:00
ChunEon Park 8cd92c17e0 Revert "ecore_evas - use the macro orthogonal check."
This reverts commit 43acf1e82f.

some partial changes are incorrectly applied.
2014-01-18 22:04:25 +09:00
ChunEon Park 43acf1e82f ecore_evas - use the macro orthogonal check. 2014-01-18 21:53:56 +09:00
Youngbok Shin a2c4c40474 evas: Fixed to compare current render_op with previous render_op for textblock. If the render_op is changed, call evas_object_render_pre_prev_cur_add.
Summary: This change is related to the commit: cdb86e34bb

Reviewers: woohyun, tasn, Hermet, seoz

CC: cedric

Differential Revision: https://phab.enlightenment.org/D450
2014-01-18 19:06:16 +09:00
ChunEon Park 84cd13bf96 efl/ecore_con - compare same types. 2014-01-18 18:50:51 +09:00
Jean-Philippe Andre 34b8045d90 Evas cserve2: Fix invalid memory access
In case of load error, we free the file entry, but forgot to
reset the pointer to it in the image entry.
2014-01-17 19:00:54 +09:00
Jihoon Kim c059b12bf4 edje: use EINA_UNUSED instead of __UNUSED__ 2014-01-17 18:51:52 +09:00
WooHyun Jung 1d189f43f6 edje_entry: When preediting, cursor should not be moved. 2014-01-16 16:31:36 +09:00
Daniel Kolesa d660dd12bb ecore_getopt: support for categories 2014-01-15 20:22:27 +00:00
Daniel Juyung Seo 2830507661 ecore_x_gesture: Cast maek pointer correctly.
Confirmed by the original author of libxgesture, Sungjin Park.
2014-01-15 20:48:33 +09:00
Jean-Philippe Andre 908785b60d Textblock: Relayout if needed in line geometry get
evas_object_textblock_line_number_geometry_get() did not trigger
a relayout, so it could end up returning FALSE and invalid values.
2014-01-15 17:55:27 +09:00
Jean-Philippe Andre 9860af0b35 Textblock: Fix padding with styles (part 2)
Summary:
If ONE single item in the whole textblock has a padding of k,
then ALL the lines of the textblock will be padded by k pixels.

Here's a solution to add the padding only to the first line.

Test Plan:
Write any multiline text, without styles, in an entry.
Add some glow to one element. All lines should be spaced by
an extra 2 pixels.

Reviewers: tasn

CC: cedric

Differential Revision: https://phab.enlightenment.org/D442
2014-01-15 17:55:27 +09:00
Jean-Philippe Andre 6970a020c1 Textblock: Fix padding computation (part 1)
Track padding per paragraph, since this is how it is computed.

Problem before this patch:
- If markup text is changed, padding may grow, and the layout is updated (good)
- If the UI itself needs a relayout, the old padding value is NOT reused,
so style paddings will reset the padding to 0.

Test protocol:
- Set some text with style=glow. The whole object should have padding 2,2,2,2
- Relayout the UI, the whole object will have padding 0,0,0,0 (should be 2,2,2,2)
2014-01-15 17:55:27 +09:00
Sebastian Dransfeld 74bfb950c6 ecore_x: set cursor with xinput2
For some reason XDefineCursor might malfunction when using xinput2. So
when using xinput2, use XIDefineCursor. Also see:

https://bugs.launchpad.net/compiz/+bug/1179155
2014-01-15 08:30:25 +01:00
Jean-Philippe Andre d8d5189003 Evas/cserve2: Remove dead code
Fixes CID 1039925.
2014-01-15 11:00:47 +09:00
Seunghun Lee c4010a5da6 ecore ecore_x_e: check 0 and -1 for ecore_x_window_prop_window_get(). According to note for ecore_x_window_prop_window_get() :
Summary:
If the property was successfully fetched the number of items stored in
val is returned, otherwise -1 is returned.
Note: Return value 0 means that the property exists but has no elements.

Reviewers: seoz

Reviewed By: seoz

CC: cedric

Differential Revision: https://phab.enlightenment.org/D457
2014-01-14 18:48:16 +09:00
Jean-Philippe Andre e465e7d58a Evas/cserve2: Stop looking at those dirty pics!
What I mean is erm... images marked as dirty don't have a
cache_key, and that's perfectly fine when the image file
has changed.
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 8fdd3992f0 Eio monitor: Fix crash on invalid data access
Fix race condition when touching/changing a (theme) file often.
An Eio_Monitor was marked as "delete_me" but the rename callback
was still called, leading to memory access to already freed
objects.

Test protocol was:
ELM_THEME=~/default.edj elementary_test &
watch touch ~/default.edj
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 06b53dd09b Evas/cserve2: Keep image_id when reopening a changed file
If a file had changed, a new OPEN message was sent, and the
client image ID was then changed, but the LOAD message was
sent with the previous image ID. So cserve2 would not be
able to honor that request.
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 73670beba3 Evas/cserve2: Rename "invalid" field to "changed"
This flag indicates that a file changed, not that the entry
is invalid. There is another "valid" flag already.
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 1d99c82381 Evas/cserve2: Improve error messages a bit 2014-01-14 14:23:04 +09:00
Jean-Philippe Andre a0dc5c16ac Evas/cserve2: Add another load error check
This one is very unlikely as it would mean the image is
invalid while being in the hash.
2014-01-14 14:23:04 +09:00
Jean-Philippe Andre 35fd233d0c Evas/cserve2: Fix crash on image file change
When an image file is changed, it is discarded from cserve2,
so the references become invalid. In case we were loading a
scaled version of that image, no proper error checking was
done, leading to obvious crashes.
2014-01-14 14:23:04 +09:00
Mike Blumenkrantz a279e13ecd ecore-x present fixups 2014-01-13 12:14:50 -05:00
Mike Blumenkrantz 131e0e1983 ecore-x now supports XPRESENT
see http://cgit.freedesktop.org/xorg/proto/presentproto/plain/presentproto.txt
2014-01-13 10:19:11 -05:00
ChunEon Park fb59ac34a1 ecore_evas - use eina_bool instead of the char for interal data. 2014-01-13 14:26:36 +09:00
Carsten Haitzler 540d7f789c evas - cserve2 - avoid segv accessing im->cache 2014-01-13 08:50:52 +09:00
Carsten Haitzler 86a97efeea evas - fonts - move to using 4bit and rel 4 bit compressed font glyphs
this changes the internal encoding of font glyphs in evas to use 4bit
uncompressed if small, or 4bit rle (run length encoded) if larger.
this caves at least 50% of memory on fonts - and more if bigger. with
large fonts (40-80pixel size) we can save in the region of 80% of
memory used for glyphs. this also happesn to allow speedups in
rendering too.
2014-01-13 05:15:32 +09:00
Daniel Juyung Seo 881f4e9c75 ecore_evas_x: Refactor/flourish gl_dync_draw_done member from Ecore_Evas
structure.

- moved gl_sync_draw_done for a better structure packing.
- changed gl_sync_draw_done type from int to char which is enough.
- added more description to gl_sync_draw_done
2014-01-12 16:37:30 +09:00
Cedric Bail 3e89295c73 eina: fix memory leak of inserting the wrong value in the hash.
We where inserting the pointer data instead of the pointer, leading to
unaligned access on Sparc (Thanks Lutin to report it and Debian tools/infra
to help us catch it) and also a memory leak.
2014-01-11 21:38:55 +09:00
ChunEon Park f111c8da6d ecore - clean up code.
fix indentation and use Eina_Bool instead of char.
2014-01-11 18:19:43 +09:00
ChunEon Park a565fd391b ecore_evas - fixed indent 2014-01-11 18:01:07 +09:00
Carsten Haitzler 4e52fbdc74 evas gl example - make bg blue to make onefang not freak out. :) 2014-01-11 11:12:16 +09:00
Carsten Haitzler 79e6918f00 formatting - fix 2014-01-10 19:58:21 +09:00
Carsten Haitzler 7aff400cc4 edje - formatting - indenting fix 2014-01-10 19:54:01 +09:00
Carsten Haitzler fc7fde97a2 evas - remove dead code (comment it out)
removes entirely dead code and keeps it for reference only
2014-01-10 18:48:42 +09:00
Carsten Haitzler 3a1d560c0c eina lock posix - remove dead code in eina_spinlock_take
this solves CID 1106340
2014-01-10 16:58:39 +09:00
Jaehyun Cho 4daf83269a [ecore_x] Set data of selection event for XDND selection
Summary: Add data set case of selection event for XDND selection if selection atom is XDND

Reviewers: raster

Reviewed By: raster

CC: JackDanielZ, woohyun, Hermet, seoz, cedric

Differential Revision: https://phab.enlightenment.org/D446
2014-01-10 15:46:15 +09:00
Carsten Haitzler f41bf26d7a evas - unbreak gl font rendering with dst pointer checks 2014-01-10 12:54:54 +09:00
Carsten Haitzler 03fccbd543 evas - sw render - protect against null pointer surface access 2014-01-10 12:47:27 +09:00
Jean-Philippe Andre b84787bf57 Evas/cserve2: Fix valgrind warning about uninitialized memory
In cserve2, a shortcut was taken to check if two images were the
same, using memcmp() on the Evas_Image_Load_Opts struct. But it
seems some empty areas in the struct are uninitialized, potentially
making memcmp() fail when the images were actually the same.

This is a minor issue since this function is called only when
bypassing the socket wait.

Also, memset load_opts to 0 and copy all the fields to avoid
the same warning in socket send().

I'm just wondering about the performance impact vs. memcpy/memcmp.
2014-01-09 17:35:35 +09:00
Cedric BAIL bd0d03fbcf ethumb: fix build on windows by matching the #if around the if statement. 2014-01-09 14:30:53 +09:00
Cedric BAIL 313cd699f2 ecore_con: fix build on windows by matching the #if around the if statement. 2014-01-09 14:30:43 +09:00
Cedric BAIL d0a03f65dc efreet: fix build on windows by matching the #if around the if statement. 2014-01-09 14:30:13 +09:00
Jean-Philippe Andre bc1a8ffb5d Ephysics: Silence more warnings from libbullet
The bullet library generates tons of warnings:
1. -Wunused-variable
2. -Wunused-parameter
3. -Wshadow

2 and 3 were properly ignored by pragma GCC, but unused-variable
doesn't seem to work. At least on my version of GCC (4.8.2).
So, let's ignore ALL warnings from libbullet includes.
2014-01-09 11:49:29 +09:00
Carsten Haitzler 555df8f510 Revert "fix allocator sizeof operand mismatch reported by clang"
This reverts commit 955cc579d4.

why? wrong. no. and it breaks actual execution/functioning. segv land
2014-01-09 10:02:26 +09:00
Jihoon Kim 955cc579d4 fix allocator sizeof operand mismatch reported by clang
https://build.enlightenment.org/job/nightly_efl_clang_x86_64/lastSuccessfulBuild/artifact/scan-build/build/2014-01-07-1/report-QL6MiM.html#EndPath
https://build.enlightenment.org/job/nightly_efl_clang_x86_64/lastSuccessfulBuild/artifact/scan-build/build/2014-01-07-1/report-a2l0Ci.html#EndPath
https://build.enlightenment.org/job/nightly_efl_clang_x86_64/lastSuccessfulBuild/artifact/scan-build/build/2014-01-07-1/report-McvqNf.html#EndPath
2014-01-09 09:10:02 +09:00
Carsten Haitzler c3d6a1478f windows build - comment out unused function in ecore_pipe 2014-01-08 22:46:51 +09:00
Carsten Haitzler 90afc354f7 fix warning about always true expression
result is a DWORD and DWRODs seem to be unsigned thus always >=0 thus
the check is useless clutter.
2014-01-08 22:44:22 +09:00
Carsten Haitzler f28f756584 win build - check for pause func and use only if its there 2014-01-08 22:40:59 +09:00
Carsten Haitzler 76b4fb27dc fix missed ifdef lack for getuid for windows 2014-01-08 22:35:57 +09:00
Carsten Haitzler e8c13118eb fix mingw build for setuid fix/checks 2014-01-08 22:06:41 +09:00
Carsten Haitzler b95ef3801f setuid safeness - ensure if an app that is setuid doesn't do bad things
this makes efl ignore certain env vars for thnigs and entirely removes
user modules (that no one ever used) etc. etc. to ensure that *IF* an
app is setuid, there isn't a priv escalation path that is easy.
2014-01-08 19:46:23 +09:00
Carsten Haitzler 323f293ab5 eio - protect against posible segv on rename with eio
this MIGHT fix T45 but i can't reproduce to confirm, but reading a
backtrace indicates this could have been the issue. it looks like
there is room for a dangling pointer anyway, so fix.

stable release - cherry-pick me!
2014-01-07 17:49:29 +09:00
Jean-Philippe Andre 5f601cd753 Evas: Fix some clang warnings in evas_cs2_client.c
- Invalid alloc size (typo)
- Initialized value never read (set twice)
- Potential memleak (call free(msg) in case of send error)
- Null pointer dereference (check nullity)

There are still other warnings, but I believe these are false
positives.
2014-01-07 15:51:56 +09:00
Jihoon Kim cb9dedd44d fix typos in EFL documents 2014-01-07 14:28:45 +09:00
Jihoon Kim 946a797e0d fix warning related to argument in generating doxygen 2014-01-07 11:27:15 +09:00
Jihoon Kim 8fcedfc017 fix 'found unknown command' warning in generating doxygen 2014-01-06 14:01:15 +09:00
ChunEon Park a76e751eb4 evas - fixed side effect caused by f4d24e962d
since the map_changed is reset right after the map is updated,
it could not decide to redraw the map surface properly.

now map_update() returns the value to redraw the map surface properly.
2014-01-06 13:54:58 +09:00
Cedric BAIL 8dc6adbf9c evil: fix include to correctly define type used in the header. 2014-01-06 13:06:15 +09:00
Carsten Haitzler 6f685d7608 fixme notes - fixme: many instances of module loading that bloat our mem 2014-01-06 12:16:36 +09:00
Cedric BAIL a2d55c2b82 evas: fix build on windows. 2014-01-06 10:39:34 +09:00
Jihoon Kim 5f5088b677 ecore_imf: fix doxygen warning in ecore_imf_context_input_panel_enabled_set () 2014-01-06 09:29:02 +09:00
Jihoon Kim d022ce1f67 evas: fix doxygen warning 2014-01-06 09:25:15 +09:00
Jihoon Kim 164ef15b6c ecore_imf: Add description about Ecore_IMF_Lib_Group 2014-01-06 09:09:53 +09:00
Jihoon Kim 777a066e87 evas: fix unknown command warning when building doxygen 2014-01-06 09:01:32 +09:00
Cedric Bail 8c094d1b2d evas: let's use HUGETLB when it makes sense. 2014-01-05 22:44:50 +09:00
Cedric Bail af83a4511c edje: correct english. 2014-01-05 19:30:34 +09:00
Cedric Bail 89a11c2d77 edje: be more informative when and where a file was not found. 2014-01-05 10:59:43 +09:00
Cedric Bail e450a8fec3 eina: Eina_File - don't leak memory when file is not found. 2014-01-05 10:59:43 +09:00
Jihoon Kim 3ebc18731f Use key instead of keyname for considering setxkbmap 2014-01-04 13:25:21 +09:00
Cedric Bail 319766f837 eina: fix support for system requiring _XOPEN_SOURCE to use spinlock and barrier. 2014-01-04 11:25:19 +09:00
Cedric Bail 4225ef35e1 eina: fix build break on systemd based system. 2014-01-04 11:24:48 +09:00
Cedric Bail 3e302e7e61 ecore_evas: extn - restore missing symbol that resulted in a temporary ABI break.
Thanks to Albin and Debian tools to have spotted that.

- cherry-pick me -
2014-01-04 11:23:47 +09:00
Guillaume Friloux ec3d13d6c9 eina - Fix compilation warning in eina_log_print_cb_journald.
vasprintf can return -1, in which case the buffer is corrupted.
So we better handle this ...

gcc told me of this thanks to -Wunused-result when building package,
thank you gcc for your incredible powers.
2014-01-03 19:13:30 +01:00
Guillaume Friloux 1073bfcd44 eina - Fix coding style madness. 2014-01-03 19:10:16 +01:00
Guillaume Friloux 5ad2e0455f ecore_audio - Fix doxygen command that does not exist. 2014-01-03 19:07:03 +01:00
Nicolas Aguirre 503e7a5b03 ecore_con - Fix binary buffer when using ECORE_CON_REMOTE_UDP.
ERR<7807>: lib/eina/eina_binbuf_template_c.x:95 eina_binbuf_append_length() *** Eina Magic Check Failed !!!
This fix a problem where eina_binbuf was used without
calling eina_binbuf_new when ECORE_CON_REMOTE_UDP is used.
2014-01-03 18:57:56 +01:00
Cedric BAIL 39a0ac4315 evas: disable use of mmap on windows for allocating pixels buffer.
We do have mmap provided by Evil, but there is no implementation yet of
an anonymous map support. Also it is not clear how the memory system of
windows does actually work, so not sure this optimization is relevant
to windows at all. Thus we disable it for the time being and unbreak
the windows support.

- cherry-pick me -
2014-01-03 17:53:51 +09:00
Cedric BAIL 37c1c4e9f6 eina: make eina_binbuf_free and eina_strbuff_free accept NULL.
We do follow free() logic here and accept NULL for all eina_*_free() functions.
This patch just do so for Eina_Binbuf and Eina_Strbuf.
2014-01-02 16:23:46 +09:00
Carsten Haitzler 0c1d42bb68 fix map-across-mark patch from sergey in december 2013
stable release - cherry-pick me!

of course! eina_hash_direct_add() for the object pointer is using the
poitner to the stack value, not the value itself it points to... this
was bad and just by luck out value was on the stack that grows but
never shrinks and thus never crashes, BUT... it will just break in all
sorts of fun ways. basically it makes the hash useless as the keys in
it are effectively all the SAME value as they point to the same
storage.. but it changes whenever that stack mem gets changed.
2014-01-02 09:39:33 +09:00
Guillaume Friloux 6ea95af025 Fix documentation for efreet_desktop_exec(). 2014-01-01 21:39:14 +01:00
Guillaume Friloux defc1d1b1a Fix documentation for efreet_desktop_environment_get(). 2014-01-01 21:28:37 +01:00
Guillaume Friloux 42c32b48a6 Simplify code of efreet_desktop_environment_set(). 2014-01-01 21:27:19 +01:00
Carsten Haitzler 7753144fe9 evas - sw render - map render neon broken for expedite 45/46 disable 2014-01-01 12:56:18 +09:00
Nick Reed 1799ccfd9d evas - fix neon scale code
Summary: evas_scale_smooth would not compile with BUILD_NEON set

Reviewers: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D424
2014-01-01 11:22:40 +09:00
ChunEon Park f7aae1cf25 evas/common - removed white spaces and use eina bool instead of int. 2013-12-31 21:11:58 +09:00
ChunEon Park b4ea1aaa87 evas/common - refactoring code.
removed white spaces.
added some comments.
changed function and variable name to be more descriptive.
2013-12-31 18:32:30 +09:00
ChunEon Park 0d33d30acc evas/common - more elaborated compuatation in interpolation.
we should not +1 in divide but only do it when the quotient is zero.
2013-12-31 18:19:41 +09:00
ChunEon Park c37ad7dfea evas/common - removed white spaces 2013-12-31 13:29:57 +09:00
ChunEon Park 01c11211dc evas/common - fixed a comment typo. 2013-12-31 13:28:57 +09:00
Carsten Haitzler 27eed1bc4e edje - fix edje lua usage for lua 5.2 to not go crazy on memory allocs
this fixes T323 - this is a change in lua 5.2 that makes osize encode
the type of data being allocated where 5.1 didn't do it and the math
was thus screwed as a result. comments in the diff.

cherry-pick me!
2013-12-31 10:00:17 +09:00
Carsten Haitzler cfbc99c174 evas - set clipees list to NULL on free to avoid access 2013-12-30 15:54:21 +09:00
Ryuan Choi b25df71d57 textblock: Simple refactoring for _markup_get_text_utf8_append to call eina_unicode_utf8_next_get directly
Summary:
evas_string_char_next_get is simple wrapper of eina_unicode_utf8_next_get with
some check routines.
But in _markup_get_text_utf8_append, these check routines look unnecessary.

Reviewers: cedric, seoz, raster

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D420
2013-12-29 13:33:20 +09:00
Yury Usishchev 011fb2d10a Blending function rework and speedup
Summary:
_op_blend_mas_c_dp_neon rework:
main loop now process 4 pixels per iteration
fast path when *m == 0

Reviewers: raster

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D418
2013-12-29 13:29:28 +09:00
Youngbok Shin 4270ddb0b7 Evas textblock: Fixed range_text_get bug with multiple text nodes.
Summary:
When there is multi text nodes for range text get,
it gets wrong format node of last text node.
It makes broken result.

Test Plan: https://phab.enlightenment.org/D398

Reviewers: woohyun, tasn, seoz

Reviewed By: tasn

CC: cedric

Differential Revision: https://phab.enlightenment.org/D399
2013-12-27 11:36:10 +00:00
Carsten Haitzler 73f91eb689 oops - and a printf crept in. i thought i was done. 2013-12-27 17:18:46 +09:00
Carsten Haitzler c8630c85a1 emotion - broken module loading loagic fixed that fixes gst 0.10/1 deadlock
so firstly the module loading logic in emotion is pretty bad. it
forcible loads into memory (dlopen + run code from) EVERY emotion
module whenever you use emotion anywhere. this is a fat memory cost and
startup cost. it should not ever have done this. so remove that code
and make it explicitly load only the backend requested and fall back
to using what is compiled in (generic by default) and otherwise
generic as a module, then xine, then gstreamer then gstreamer1.
gstreamer1 seems broke - all i see is a black box (no video).

this also fixes a deadlock problem. if you have BOTH gstreamer AND
gstreamer1 modules loaded i get a deadlock inside glib. this seemingly
fixes it as it'll only load the first one it finds, not both (unless
explicitly requested).
2013-12-27 17:18:01 +09:00
Jihoon Kim f241646370 Edje: add edje_object_part_text_input_panel_show_on_demand_set/get() 2013-12-27 13:24:54 +09:00
Dennis Schridde bf9c3aad24 eina: struct _Eina_Rbtree contains an enum bitfield, which is a GNU extension not specified by C99.
Reviewers: barbieri, raster, cedric

Reviewed By: cedric

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-27 12:07:01 +09:00
Carsten Haitzler 2ef0f53401 ecore-x - rename new api 2013-12-27 12:02:48 +09:00
Cedric BAIL 922fe6c109 evas: improve textblock rendering by walking even less in all case.
We now build a list of item to walk on for each step to just avoid all necessary walking.
It is a slightly more elegant idea than my previous patch even if it only give a speed
improvement of 5% in the best case. Now that render code and the callee only take 1.6%
of the time I am looking at in the benchmark, meaning nothing else to improve here.

This fix the bug spotted in Enlightenment dialog box.
2013-12-27 09:54:46 +09:00
Carsten Haitzler 3367bf0aba Revert "evas: improve textblock rendering by walking even less in all case."
This reverts commit a69c5ba0ae.

yes - this broke text rendering. revert it. several dialogs/uses in e
broke with shadow and glow text being heavily offset up/to the right
of the proper text.
2013-12-27 00:06:37 +09:00
Chris Michael 3926b25279 Cleanup ecore_x_window_permanent_create function:
- No need for a separate xcb_connection here as we already have a
connection at this point so let's use that.
  - Fix up formatting.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-12-26 11:40:32 +00:00
Cedric BAIL a69c5ba0ae evas: improve textblock rendering by walking even less in all case.
We now build a list of item to walk on for each step to just avoid all necessary walking.
It is a slightly more elegant idea than my previous patch even if it only give a speed
improvement of 5% in the best case. Now that render code and the callee only take 1.6%
of the time I am looking at in the benchmark, meaning nothing else to improve here.
2013-12-26 19:20:12 +09:00
Carsten Haitzler eb8b643bf2 ecore-x - add call to create a permanent window that is not deleted on exit 2013-12-26 19:01:23 +09:00
Carsten Haitzler f149b44b85 evas - protect against table cache being null and then used 2013-12-26 12:51:52 +09:00
Daniel Juyung Seo 76d8532b54 efl: Unified eina critical manro to CRI.
Being annoyed by different types of eina critical macros - CRI, CRIT,
 CRITICAL -, I concluded to unify them to one. Discussed on IRC and
 finally, CRI was chosen to meet the consistency with other macros -
 ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
2013-12-26 12:27:13 +09:00
Daniel Juyung Seo 10dd650d90 edje_convert.c: fixed formatting before working on the file. 2013-12-26 12:27:13 +09:00
Cedric BAIL 766bd42639 evas: limit how many times we walk over items.
This does help for some textblock benchmark with a speed increase of 12% and
the one that don't get better don't get slower either, so let's put that in.
2013-12-26 11:27:09 +09:00
Sebastian Dransfeld 35240d979a ecore: remove dead free
Since we now free exe on goto restart, exe will always be NULL.

CID 1139955
2013-12-23 13:39:47 +01:00
Cedric BAIL 324f4aebe8 ecore: fix shutdown when using system module.
This patch will detect how many more times ecore_init was called
during initialization and use that as a threshold to do a clean shutdown.
It is a necessary evil as we do have ecore module that will initialize
eldbus that will then reinit ecore_init from within ecore_init and without
a chance for the application to act on it.

I also reenable a test to make sure we will catch earlier this kind of issue.
2013-12-23 11:58:17 +09:00
Cedric BAIL 0a6ce62bb2 eldbus: don't do a double initialization due to ecore module using eldbus now. 2013-12-23 11:24:49 +09:00
Vyacheslav Reutskiy 641d823cbb edje: edje_calc - update _edje_part_description_find
Add to fuction prototype new param: Eina_Bool approximation.
If need exact matching state name and value set EINA_FALSE to
'approximate'. In other cases used EINA_TRUE.

Reviewers: cedric, raster, seoz

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-23 10:47:32 +09:00
Andrii Kroitor 7a3cd879d2 edje: edje_edit - fix .edc file generation
Reviewers: cedric, seoz

Reviewed By: cedric

CC: reutskiy.v.v, cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-23 09:49:53 +09:00
ChunEon Park 10babb62cd evas - redraw the map surface if one of the children has been still changed map. 2013-12-22 18:19:40 +09:00
discomfitor dd666a6ffd bugfix: free the entire ecore_con dns struct on info clear to prevent crashes later on 2013-12-20 22:16:59 -05:00
discomfitor 2a143393f9 split ecore_con_dns free functions into one that removes from list and one that does the freeing 2013-12-20 22:16:29 -05:00
discomfitor 0808259eff Revert "workaround for a weird ecore-con crash"
This reverts commit c751a220d6.
2013-12-20 22:04:58 -05:00
discomfitor c751a220d6 workaround for a weird ecore-con crash
kuri ping in case I don't get to this soon it needs to be fixed somewhere else
2013-12-20 21:36:58 -05:00
ChunEon Park faa67b79f0 evas - removed unnecessary doc info 2013-12-20 20:26:57 +09:00
Carsten Haitzler cb841b56af evas render2 - more work on basics 2013-12-20 19:45:44 +09:00
Cedric BAIL 1a5b7d383d evas: fix compilation issue on Jenkins windows that make me wonder how it does build on Linux. 2013-12-20 16:09:10 +09:00
Yury Usishchev 8fb948bd46 evas: patched evas_map_image.c to use NEON code
Reviewers: cedric, raster

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-20 15:10:09 +09:00
Vyacheslav Reutskiy e69929321f edje: edje_edit - adding getter and setter for smooth parameter
This commit will add API for working with smooth for image
and proxy part type.
There are two functions will be added:

1. edje_edit_state_fill_smooth_get
2. edje_edit_state_fill_smooth_set

Reviewers: cedric, raster, seoz

Reviewed By: cedric

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-20 14:43:23 +09:00
Viacheslav Lvov 067cbf6df8 evas - render - clear out pending object array more aggressively
There was detected that pending_objects array of Evas structure of
email application stores at least 550 objects that never are removed
from this array. These objects are not active and are not about to render.
We know that once the decision not to remove changed objects from this
array was accepted. But then the criterion of leaving object in this
array was weakened.
We propose to weaken this criterion more sufficiently – do not store
in this array objects that can not be cause of whole canvas
invalidation. Our exact proposal for this criterion you can see in the
patch attached to this issue.

NOTE: This patch is a try, there may be some side effect especially with
mapped object that we didn't find, so it could be reverted if before the
release of 1.9 we see anything wrong.

Reviewers: cedric

CC: cedric, seoz

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-20 14:43:23 +09:00
Carsten Haitzler d3e74a0c58 render2 - work 2013-12-20 14:14:52 +09:00
discomfitor 41fe698fc2 reformat ecore_con so I can read it... 2013-12-20 00:08:43 -05:00
Jihoon Kim 2bcfc800c9 Remove ecore_imf_context_reset in focus-in event handler
It's useless to call ecore_imf_context_reset in focus-in handler
2013-12-20 09:31:58 +09:00
Carsten Haitzler eed4526003 first steps to rewriting evas render... a long path. 2013-12-19 22:49:43 +09:00
Guillaume Friloux 86d2983bf3 Fix leak + possible segfault in edje_edit.
vaiable 'c' is allocated inside a loop, but only freed outside that loop...
2013-12-19 11:04:07 +01:00
Vyacheslav Reutskiy 8bff25fadc edje: edje_edit - adding API to move to the specified place in the parts stack
This commit will add some API to restack part above/below target part.
There are two functions will be added:

1. edje_edit_part_restack_part_below
2. edje_edit_part_restack_part_above

Reviewers: cedric, seoz, raster

Reviewed By: cedric

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-19 15:53:48 +09:00
Andrii Kroitor 287d63c016 edje: edje_edit - image api modification
Changed edje_edit_image_del logic: image can't be deleted if it's in use,
after deletion last image in list is moved to freed position so there are no
"holes" in image list.

Following functions added to api:
   edje_edit_image_replace
   edje_edit_image_usage_list_get
   edje_edit_image_usage_list_free

Reviewers: cedric, seoz, raster

Reviewed By: cedric

CC: reutskiy.v.v, cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-19 15:53:38 +09:00
Vyacheslav Reutskiy bf3f0f2f4a edje: edje_edit - fix edje_edit_state_color_class_set to apply the colors to color_class.
edje_edit_state_color_class_set apply the colors from color_class to the given part.

Reviewers: cedric, seoz, raster

Reviewed By: cedric

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-19 15:53:29 +09:00
Vyacheslav Reutskiy 811c97eabb edje: edje_edit - adding getter and setter for text source
This commit will add API for working with text source.
There are two functions will be added:

1. edje_edit_state_text_source_get
2. edje_edit_state_text_source_set

Reviewers: cedric, seoz, raster

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-19 15:53:27 +09:00
Vyacheslav Reutskiy 0ad1dfe4e5 edje: edje_edit - adding getter and setter for text style
This commit will add API for working with text style.
There are two functions will be added:

1. edje_edit_state_text_style_get
2. edje_edit_state_text_style_set

Reviewers: cedric, seoz, raster

Reviewed By: cedric

CC: cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-19 15:53:24 +09:00
Vorobiov Vitalii 891c34f50f edje: edje_edit - _edje_generate_source supporting alias
Support generating alias source code in functions:
1) _edje_generate_source_of_group
2) _edje_generate_source

Reviewers: cedric, seoz, raster

CC: reutskiy.v.v, cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-19 15:53:15 +09:00
Vorobiov Vitalii 12c91a8852 edje: edje_edit - adding edje_edit_group_copy.
This new function will copy the whole group into same file but with another group name/id.

Copying whole group data field by field require some huge code.
Alternatively we found another solution for copying whole group as you can see it in this commit.
This function will copy group and all it's data (like scripts etc) and it will be totally independent.

Reviewers: cedric, seoz, raster

CC: reutskiy.v.v, cedric

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-19 15:52:51 +09:00
ChunEon Park f4d24e962d evas/map - ensure map updation.
for more gurantee to update map properly,
we should reset the map changed flag after the map updation is performed.
this will fix a mapbuf bug that map is not updated.

when the map is changed without rendering but it's in the active object list,
the map updation couldn't be happened later that map is rendered. (if the map is not updated at this frame)
2013-12-19 15:34:15 +09:00
ChunEon Park cb384fe88b Revert "evas/map - commeted out insane compare."
This reverts commit b259cfafe5.

my fault. the compare is reasonable.
2013-12-19 14:33:02 +09:00
ChunEon Park b259cfafe5 evas/map - commeted out insane compare.
cedric, is it just typo?
2013-12-19 14:12:23 +09:00
Daniel Juyung Seo c4b7f83ef6 ecore_evas: removed author's name from source code as the author requested it.
Git log should be enough for the credit :)

This code was merged into efl upstream by devilhorn's aggressive synchronization between efl upstream and tizen.
But that commit didn't have the author's credit.
However We will never forget the contribution of Gwanglim Lee <gl77.lee@samsung.com>.
2013-12-18 23:49:06 +09:00
Daniel Juyung Seo 17fe60d0db ecore gesture: removed unused variable. 2013-12-18 23:18:15 +09:00
Carsten Haitzler ed27f52b05 evas - tiler - fix missing clip of first rect to outbuf size
stable release - cherry-pick me!
2013-12-18 20:38:15 +09:00
Gustavo Sverzut Barbieri 0b86e5119f getopt: add positional argument handling.
positional arguments must appear at the end of the description array
(after the last option) and should have a metavar set and not have
shortname or longname. Simple, elegant and fit :-)

There is a new function to parse the positional arguments,
ecore_getopt_parse_positional() because we may want to not try to
parse them in the case of a quit-option such as --help, --license,
--copyright, --version or some user-defined action. This avoids us
producing errors of missing positional arguments when printing help
and adds some flexibility as well.

This should make Tasn happy :-)
2013-12-17 21:06:53 -02:00
Gustavo Sverzut Barbieri 99ba5822c8 getopt: fix line wrapping issues in help strings. 2013-12-17 17:51:48 -02:00
Cedric BAIL 0a1cc79a91 Ecore_Avahi: initial commit.
TODO:
- Add tests, how ?
- Integrate with Eo, needed ?
2013-12-17 19:37:05 +09:00
Iván Briano 99e3ce489a One ) too many. 2013-12-16 15:45:00 -02:00
Tom Hacohen 7aae5d0804 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:45:10 +00:00
Cedric BAIL e131580aba emotion: fix Windows compilation. 2013-12-16 17:03:10 +09:00
Cedric BAIL fce52b1031 emotion: revert to fast sed to use the right eina log domain. 2013-12-16 15:25:36 +09:00
Carsten Haitzler 7c38520f50 edje_edit - fix mem leak of src strbuf on print status
though utterly minor - it's still a leak. fix CID 1039263
2013-12-15 11:40:16 +09:00
Carsten Haitzler ee8bfeb458 edje - edje_edit - don't access collection after it is freed
should fix CID 1137855
2013-12-15 11:34:43 +09:00
Carsten Haitzler 6d5058ee1c emotion - webcam - don't access after free and ensure it is not in list
this should fix CID 1137853 and CID 1137854
2013-12-15 11:31:28 +09:00
Carsten Haitzler f1fa8de149 ecore-file - fix mem leak in ecore_file_app_exe_get() on restart
this actually fixes the issue. coverity did point it out but i fixed
it incorrectly. since it was still there in the scan i now fixed it
properly. fixes CID 1039279
2013-12-15 11:18:38 +09:00
Vorobiov Vitalii 0640b7f341 edje: adding Alias API into edje_edit module
Summary:
This commit will add some API for working with aliases.
There are four functions will be added:
1. edje_edit_group_aliases_get - this function will return the list of aliases of certain group.
2. edje_edit_group_is_alias - this function will check if the given group name is actually an alias.
3. edje_edit_group_aliased_get - return the main real group that is being aliased.
4. edje_edit_group_alias_add - add new alias name.

Also the function "edje_edit_group_del" was modified because of wrong behaviour.
Now if the given group is alias, it will successfully delete it,
but if the given group is main group, it will also delete all it's aliases.

This commit also modify EDJ file by adding new field for detecting if the group is alias or not.

Reviewers: cedric, seoz, raster

Reviewed By: raster

CC: reutskiy.v.v, cedric

Differential Revision: https://phab.enlightenment.org/D376
2013-12-14 18:40:26 +09:00
Carsten Haitzler 3a47fe5fa8 evas common - uninitialized use warning remove 2013-12-14 18:28:56 +09:00
Vorobiov Vitalii ae2be0c2d3 edje: Fixing little misbehavior of edje_edit_state_rel_to_set
Summary:
After making part relative to the whole interface (by giving NULL parameter)
it was returning EINA_FALSE (not successfull).

Reviewers: seoz, cedric, raster

Reviewed By: raster

CC: reutskiy.v.v, cedric

Differential Revision: https://phab.enlightenment.org/D379
2013-12-14 18:26:30 +09:00
Tom Hacohen 7141c1dbb2 Evas textblock: Fixed deletion of ranges ending with visual formats.
This is a regression introduced in:
3f3ad67616
2013-12-13 14:44:16 +00:00
Carsten Haitzler f8b5dcf126 ecore_file - finding exe path - if HOME is not set a leak could happen
this fixes CID 1039279
2013-12-13 21:26:05 +09:00
Carsten Haitzler e4b029da0b eina - eina_file - fix leak of fd is fd is 0
this should fix CID 1039181
2013-12-13 21:26:05 +09:00
Carsten Haitzler 5d6e30fae0 fix fd leak in emotion webcam where fd of value 0 never closed
fixes CID 1039175
2013-12-13 21:26:05 +09:00
Carsten Haitzler c6119802d1 edje - lib - remove useless memset as later memcpy overwrites
this removes a useless memset that does nothing usefule as a later
memcpy (not far down from it) will overwrite it anyway.
2013-12-13 21:26:05 +09:00
Carsten Haitzler 75fbf9e03a ethumb - ensure buf is nul terminated
this SHOULD deal with CID 1039577  and CID 1039576
2013-12-13 21:26:05 +09:00
Carsten Haitzler a99bc89331 evas - common - remove useless new as next call allocs if NULL 2013-12-13 21:26:05 +09:00
Carsten Haitzler 8cdef1831c ecore-con - fix possible unterminated buffers
this should fix CID 1039725 and CID 1039724
2013-12-13 21:26:05 +09:00
Youngbok Shin f374815a3e [Edje] Update anchor and item tags when text is deleted by _edje_entry_imf_event_delete_surrounding_cb.
Summary:
Anchor and item tags should be updated when text is changed.
In _edje_entry_imf_event_delete_surrounding_cb function,
the text is changed by "evas_textblock_cursor_range_delete" API
and there was no update about anchor and item tags.

It can result that the tags hang in the air after deleting.

Reviewers: tasn, woohyun, seoz, jihoon

Reviewed By: tasn

CC: cedric

Differential Revision: https://phab.enlightenment.org/D368
2013-12-13 12:04:50 +00:00
Cedric BAIL ca2f9571ab emotion: make webcam initialization lazy and non blocking.
This should fix T648.
2013-12-13 12:44:19 +09:00
Cedric BAIL 96c1d15ac0 emotion: fix potential memory leak when webcam register fail. 2013-12-13 12:22:06 +09:00
Cedric BAIL f6c4513da4 emotion: use emotion log domain instead of eina one. 2013-12-13 11:30:46 +09:00
Cedric BAIL d55164c5a2 emotion: lower warning on webcam access error to information (Not critical anyway). 2013-12-13 11:30:46 +09:00
Carsten Haitzler 675309d9d9 ecore_con - dns.c - re-fix coverty double-free. coverity was and is right.
fixes CID 1039909 again (it's back after rebase). it is an actual bug.
2013-12-13 09:41:23 +09:00
discomfitor 0f46b8d7ec fix ecore-x shadow warning 2013-12-12 09:31:08 -05:00
discomfitor 5a549c8e97 rebase dns.c from upstream 2013-12-12 09:29:02 -05:00
Carsten Haitzler f0ba71314e eet data encode - dont free data if its not separately allocated
in one case data is not separately allocated but is part of the
Eet_Variant_Unknow struct where it is allocated as extra space on the
end of the data blob. in this case don't free it, otherwise do (pass
in true) as before. this should fix CID 1039728
2013-12-11 20:44:51 +09:00
Carsten Haitzler 98293fadb1 evas - font dir - remove from hash before free/del
this addresses CID 1039889 but was otherwise harmless
2013-12-11 19:49:36 +09:00
Carsten Haitzler efdeb257b4 ethumb - client lib - fix access of async item in idler after free
this fixes CID 1039892
2013-12-11 19:42:07 +09:00
Carsten Haitzler 4d7edf623b ephysics - fix real access-after-free issue on delete of constraint
this fixes CID 1039895
2013-12-11 19:38:46 +09:00
Carsten Haitzler 1c267deb8f ecore-con - dns.c - fix double free
this fixes CID 1039909
2013-12-11 19:32:54 +09:00
Carsten Haitzler 5a9184b323 evas - textblock - fix dbg_info_get to avoid leak if root is NULL
fixes CID 1040007
2013-12-11 19:00:15 +09:00
Sebastian Dransfeld 50569a69c9 ecore_x: ensure positive malloc size
size_ret is used later as an argument for malloc, so it should be
positive. In addition this should ensure that
ecore_x_window_porp_property_get returns a positive value and is true if
we malloc data.

Hopefully also fixes CID 1135636
2013-12-10 09:10:54 +01:00
Sebastian Dransfeld 4a24b84185 ecore_x: remove double free
We first free'd the data in the else, then at the end.

Now we free old_data just before return, and at the end.

Fixes CID 1135637
2013-12-10 08:30:23 +01:00
Carsten Haitzler b3d69254b6 ecore-evas - disable comp syncing by default (can be turned on though still) 2013-12-10 14:02:27 +09:00
Jean-Philippe Andre 0cb048f9b6 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 12:05:04 +09:00
Daniel Juyung Seo e163b3eef5 ecore_evas: added missing documentation for ecore_evas_manual_render_set/get(). 2013-12-10 00:58:28 +09:00
Tom Hacohen b5262de237 Evas textblock: Slightly improve paragraph items freeing.
Use the EINA_LIST_FREE macro instead of a safe loop and a list free.
This is faster and cleaner.
2013-12-09 13:33:46 +00:00
Carsten Haitzler 82841fefe3 fix seb "fix" commit that causes lots of segvs.
this fixes 04e0a6d95e which introduced
copy & paste segv's by properly terminating the right buffer.
2013-12-09 18:39:07 +09:00
Jean-Philippe Andre b10dcb5c23 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 17:48:32 +09:00
Daniel Zaoui 1ae7a4f5e2 Ecore: add DnD abort from source
This can be used to cancel a DnD drag operation in the middle.
2013-12-09 09:11:27 +02:00
Carsten Haitzler 0e902ffffe ecore evas - add animator update syncing to only render on animator ticks
this adds a ifdefable feature to sync rendering only to animator
slots. this should reduce over-render of more frames than a user can
see when updates are triggered by things like mouse movements (which
may come in many times faster than the framerate). this is an
experiment to see if this helps smoothness and load. it also has
problems in e grabs x while rendering - this is now fixed in e18
alreadey, but it is just a config you can turn off.
2013-12-09 14:48:07 +09:00
Carsten Haitzler cc1ff31276 ecore loop + animator - add call to get if an animator cb has run this iter
this adds a simple call and infra to get if an animator has run this
iteration. it's simple and not really useful other than internally to
efl.
2013-12-09 14:48:07 +09:00
Sebastian Dransfeld 752d627a93 ecore_x: Fix buffer overrun
Use strncpy to prevent buffer overrun on buf, and '\0' terminate.

Fixes CID 1039584
2013-12-07 21:11:34 +01:00
Sebastian Dransfeld 8b72bd6e6d ecore_x: Fix bug in ecore_x_region_invert
As bounds is a pointer, bounds + num will always be postive, so this is
an eternal loop. In addition, XFixesInvertRegion only accepts one
region, so num must be 1.

Fixes CID 1039469
2013-12-07 21:11:34 +01:00
Sebastian Dransfeld c8b8738612 ecore_x: Remove NULL check
to get here, old_data != NULL.

Fixes CID 1039648 and 1039649
2013-12-07 21:11:34 +01:00
Sebastian Dransfeld 1905fd4858 ecore_x: Use free, not XFree
Data returned from ecore_x_window_prop_property_get are malloced, so use
free, not XFree. Which also is consistent, as free was used on other
occasions.
2013-12-07 21:11:34 +01:00
Sebastian Dransfeld f4c71fba21 ecore_x: supported isn't an optional argument
if supported is NULL, this function isn't of any use.

Fixes CID 1039430
2013-12-07 21:11:34 +01:00
Sebastian Dransfeld 31d0a2d71c ecore_x: Only use att if call succeeds.
XGetWindowAttributes isn't guaranteed to succeed.

Fixes CID 1039692
2013-12-07 21:11:34 +01:00
Sebastian Dransfeld 6b1438af05 ecore_x: Only do memset if len < 20
If len is 20, n is 0, and nothing to memset.

Fixes CID 1039311
2013-12-07 21:11:34 +01:00
Sebastian Dransfeld aca33ef3d9 ecore_x: always free data and return value
if we are the selected parser, we are responsible for free'ing data and
returning a selection value.
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld f22f861f61 ecore_x: Check if we have data
data could be NULL and size == 0, so check for this.

Fixes CID 1039264
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld 04e0a6d95e ecore_x: '\0' terminate converted text
This makes ecore_x text converter behave like elm text converter.

Fixes CID 1039310
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld 50feb1f8da ecore_x: Use eina_inlist
ecore_x_selection implemented it's own single linked list. Use
eina_inlist instead.
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld d09ceaf4c1 ecore_x: Only send XdndEnter when we have types
If ecore_x_window_prop_property_get fails, we have no types to drop so
don't send XdndEnter.

Fixes CID 1039693
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld 31fde249d4 ecore_x: Also check for !prop here
We check if prop is NULL after first property check, do it here too.

Fixes CID 1039429
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld 6f56406f59 eldbus: Check return value of eina_value_pget
If eina_value_pget returns FALSE, we shouldn't continue.

Fixes CID 1039685
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld 2b9710431e eldbus: use alloca to allocate local mem
Since we free the allocated mem some lines down, we can use alloca. This
also fixes CID 1039179
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld 831d17a8e8 eldbus: unref msg on error
If we return here, the msg isn't sent, so unref it.

Fixes CID 1039178
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld c5caea03e3 eldbus: on error unref msg
This is done on all other errors, EINA_SAFETY macros ain't no silver
bullet.

Fixes CID 1039177
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld f950e7990f eldbus: free allocated mem on error
Fixes CID 1039177
2013-12-07 21:11:33 +01:00
Sebastian Dransfeld 1d1feea572 eldbus: Check return value of _type_size
_type_size could return 0, which would fail in the modulo call next.
Check for 0, and return.

Fixes CID 1039436
2013-12-07 21:11:32 +01:00
Sebastian Dransfeld 08978ddb56 eina: Set it to NULL before next iteration
it might have been free'd by the user, so set it to NULL before next
iteration. This is an attempt to fix CID 1039913 and 1039914.

We don't use the pointer value, only the pointer, so the error is wrong.
Could flag the error in coverity, but if this fixes it, we wont see the
error in other situations.
2013-12-07 21:11:32 +01:00
ChunEon Park 3c58b3ebeb Revert "evas/render - make sure render pre in proxy rendering."
This reverts commit b113f555e0.

found side effect... revert this code until fix them.
2013-12-08 03:14:14 +09:00
ChunEon Park b113f555e0 evas/render - make sure render pre in proxy rendering.
if the some of children are the mapped object in source object tree as well as the the mappped object is invisible,
then they wont be render_pre() called.

this make sure those render_pre() in proxy rendering.
2013-12-08 02:40:35 +09:00
Carsten Haitzler abb06c111b evas - silence coverty (false positive leak)
the hash can't leak where coverty thinks... because the hash find can
never work ... because the hash is empty.
2013-12-06 09:07:44 +09:00
Vostokov Sergey 6a5e72d37b 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:35 +09:00
Carsten Haitzler 9c3682b746 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:04:26 +09:00
Cedric Bail 2e9f96cc24 eina: this is actually a better way of improving Eina_Hash performance.
This reduce the size of the rbtree part dedicated to the hash key match,
but reuse only bit that weren't matched by the bucket.
2013-12-05 16:32:02 +09:00
Daniel Juyung Seo 998c543ae2 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.
2013-12-04 19:45:17 +09:00
Cedric Bail ff845b0a7c eina: improve cmp function of eina_hash string related hash.
For strings, we already know the length, so let's just not call the
heavy strcmp if the length is not already the same. Get some easy
speedup here.
2013-12-04 19:05:03 +09:00
Cedric Bail df909605c5 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:33:05 +09:00
Cedric Bail 3a15c5bbb3 Revert "eina: work around current strange behavior seen in eina_cow."
This reverts commit e4107b2936.
2013-12-04 18:33:05 +09:00
Cedric Bail 4f161f0c8d Revert "eina: more work around to limit problem."
This reverts commit c5db264e0a.
2013-12-04 18:33:05 +09:00
Cedric Bail 3c7185e880 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:33:04 +09:00
Cedric Bail c5db264e0a eina: more work around to limit problem. 2013-12-04 16:31:49 +09:00
Cedric Bail e4107b2936 eina: work around current strange behavior seen in eina_cow.
This is not perfect, it will just limit the propagation of the problem
for some time. Yes, it does hide it under the carpet, but that's better
than having a crash. Problem seems to be in Eina_Hash, but is really
difficult to reproduce and fix for the moment.
2013-12-04 15:36:17 +09:00
ChunEon Park a7c51c4d39 evas/event - fix the inccorect event hit area.
cedriccccccccccccccccccccccccccc!!!!!!!!!!!!!!!!!!
2013-12-04 01:04:21 +09:00
Cedric Bail f90803aa2f 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:43:58 +09:00
Carsten Haitzler 48d3253b45 NEON vectorization: added use of COLSAME define in map routine
Reviewers: raster

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D341
2013-12-02 16:33:34 +09:00
Daniel Juyung Seo 5b21fa7169 Revert "fix smart sma by allowing more recursion"
This reverts commit 1319733cae.

Let's revert this patch and lower the recursion number.
As we released efl 1.8, let's find the root causes of the problem and fix them.
I already told this revert to raster so I am not mean :)
2013-12-02 16:02:23 +09:00
Otavio Pontes afd8a238d1 Adding the cubic-bezier curve to edje transitions
Summary: Adding an option to use a cubic-bezier curve in edje transitions.

Reviewers: Sachiel, cedric, raster

Reviewed By: raster

CC: raster

Differential Revision: https://phab.enlightenment.org/D319
2013-12-02 15:02:40 +09:00
Carsten Haitzler 0b605c5daa Eldbus: added function for getting bus unique name
Summary:
Hello guys,

We are now working on a accessibility support for elementary (ATSPI2) and we need following function to correctly register application.

Reviewers: cedric, raster, lucasdemarchi

Reviewed By: raster

Differential Revision: https://phab.enlightenment.org/D327
2013-12-02 14:57:07 +09:00
Vyacheslav Reutskiy 40d4acd77e edje_edit: Add getters and setters for fixed param
Reviewers: cedric, seoz, raster

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D339
2013-12-02 14:54:28 +09:00
Daniel Juyung Seo e2467724da 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.
2013-12-02 12:46:18 +09:00
Jihoon Kim 49511730d7 fix unchecked return value of stat in ecore_file_mv
stat() function may fail and return an error code

This fixes CID 1039697
2013-12-02 09:40:48 +09:00
Cedric Bail 069a2b027f evil: use the right ifdef. 2013-12-01 20:56:52 +09:00
Carsten Haitzler 0f21e4cfa7 eina - fix set-but-unused warning in eina_cow when valgrind off 2013-12-01 13:52:53 +09:00
Carsten Haitzler 2512eaf157 evas event freezing is "wrong" for core events - turn it off
this turns off event freezing for SOME event types for eveas canvas
events (was was intended to begin with). this fixes T577
2013-12-01 13:26:04 +09:00
Carsten Haitzler 970bcc64d8 evas - pre/post render events are for canvas not object
the eo event naming was wrong for pre/post render event callbacks.
they are for the canvas as a whole, not per object
2013-12-01 12:50:45 +09:00
Carsten Haitzler c12ac143c6 fix freetype header includes to be correct where ft 2.5.1 breaks builds
this should fix T591
2013-12-01 12:16:28 +09:00
Boris Faure f45618d15b fix eina_cow issues. Closes T581, T527 2013-11-30 15:41:08 +01:00
Oleksandr Shcherbina 1cad4c2afe ecore/ecore_file: NULL-check for input parameter
Add check by NULL for input parameter 'path' in method ecore_file_mkpath

Reviewers: seoz, Hermet

CC: cedric

Differential Revision: https://phab.enlightenment.org/D349
2013-11-30 13:50:17 +09:00
Sebastian Dransfeld 3ebebbca1a eina: formatting 2013-11-29 22:20:50 +01:00
Sebastian Dransfeld 575f466a10 efreet: improve locking
Do find and ref inside lock, so no one can ref-- after we find desktop
2013-11-29 22:20:50 +01:00
Rafael Antognolli cc4aedaaee ecore/wayland: Use touch_focus for touch_based events.
Also call the mouse related events with BTN_LEFT instead of 0, otherwise
the correct button won't be assigned to the event (button 1).
2013-11-29 18:05:42 -02:00
Rafael Antognolli a14ee372e0 ecore/wayland: Send a mouse up event when the implicit grab starts.
The previous workaround used to send a mouse up event to the
application, using the pointer enter callback to determine when an
implicit grab has finished. This was "simulating" a mouse up event when
the surface move or resize finished.

However, this doesn't work for touch-based move. The pointer enter isn't
emitted, because the wl_touch interface doesn't have the concept of a
pointer.

Changing this code to make it more similar to what Weston's toytoolkit
does, the mouse up event is sent as soon as the move or resize grab
starts. After that, the compositor takes care of the move/resize almost
entirely.

Should fix T468.
2013-11-29 18:05:19 -02:00
Rafael Antognolli 2c95c5ee1d ecore/wayland: Get the touch up event position from the down_info.
down_info is a struct that stores some information about the current
pressed touch events. It should be used for that specific touch point,
instead of the generic input info, when sending a mouse_up event.
2013-11-29 18:05:06 -02:00
Rafael Antognolli b92fc57c5a ecore/wayland: Remove list of touch points from input structure.
We already have the "Ecore_Wl_Mouse_Down_Info" list, that contains this
information.
2013-11-29 18:05:06 -02:00
José Roberto de Souza 64687356b0 eldbus: Fix crash caused when the object of an monitored proxy is deleted
This happen because proxy was already freed and we try print some information
about the proxy in error message.

This fix: https://phab.enlightenment.org/T543
2013-11-29 17:21:14 -02:00
José Roberto de Souza b25fd77827 Revert "workaround for T543"
This reverts commit b663b5b8c7.
2013-11-29 16:39:10 -02:00
Jean-Philippe Andre 62093d99d4 evas/cserve2: Fix interrupt on select in edje_cc
Summary:
Block SIGCHLD during select().
This fixes a bug with edje_cc when EVAS_CSERVE2=1: Fixes T464.

select() used to return prematurately with EINTR because the
app received some unexpected signals. In particular SIGCHLD
is received when a child terminates, but this is not a reason
to cancel the image load.

In theory, all blocked signals in pselect() should be pending
until pselect returns, so any SIGCHLD should still trigger
the app's signal handler.

Reviewers: cedric

CC: raster, cedric

Maniphest Tasks: T464

Differential Revision: https://phab.enlightenment.org/D357
2013-11-29 15:47:57 +09:00