Commit Graph

4037 Commits

Author SHA1 Message Date
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 98f745d140 Evas filters: Add all filters to Makefile
Compile the following evas_filter files:
- evas_filter.c
- blend.c
- blur.c
- bump.c
- curve.c
- displace.c
- mask.c
- parser.c
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
Wonsik Jung 3420eda31a evas: gl backend - ensure eng_window_use in image_content_hint_set
Summary: Ensure eng_window_use in image_content_hint_set

Test Plan:
1. make native OpenGLES application.
2. set evas object image  with evas_object_image_native_surface_set.
3. GLES Application try to call eglMakeCurrent with own eglContext, then resize evas object resize

Reviewers: Hermet, raster, cedric

Reviewed By: cedric

CC: cedric, seoz

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

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2014-02-07 12:18:16 +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
Tom Hacohen a5691571e3 Evas textblock: Added a test for range geometry with bidi text. 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
Carsten Haitzler b6f4af28b2 ecore audio: tests - remove #if0'd out code 2014-01-26 18:33:36 +09:00
Daniel Kolesa f2c9fcf5f1 a small ecore_getopt bugfix 2014-01-24 10:12:41 +00:00
Cedric BAIL f5c125dfc2 eina: fix test suite for rwlock... hopefully. 2014-01-24 12:00:32 +09: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
Cedric BAIL 5593964ead embryo: force the insertion of a '/' in the path to be sure that file path make sense. 2014-01-24 08:19:47 +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
Carsten Haitzler 1c2da046dc embryo_cc - remove trainling / from path for windows stat so it works 2014-01-23 08:45:44 +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
Cedric BAIL 938aba36eb eina: do not access dead pointer from within valgrind macro. 2014-01-22 12:22:13 +09:00
Jihoon Kim 2c0c2b0fed ximimmodule: fix dereference after null check
CID 1162749:  Dereference after null check  (FORWARD_NULL)
/src/modules/ecore_imf/xim/ecore_imf_xim.c: 1027 in _ecore_imf_xim_preedit_draw_call()
2014-01-22 09:46:24 +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
Tom Hacohen cff1a9a59f Synced libunibreak local copy with upstream.
This fixes T805.
2014-01-21 16:41:06 +00: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
Gustavo Sverzut Barbieri dbc4669d68 eina/mp/one_big: fix alignment issues.
When over-allocating (past "pool->max" items) a memory slice will be
allocated to the new item as a linked list using Eina_Inlist.

The original code was placing the Eina_Inlist structure (3 pointers)
at the beginning of the allocated memory. However the item must have
proper alignment based on "pool->item_size", otherwise a structure may
end with unaligned members. Take for example MIPS 32 bits, it uses 4
bytes pointers with 8 bytes double. A structure containing a double
could have it unaligned as 12 % 8 = 4 (12 is the size of Eina_Inlist,
that contains 3 pointers), and MIPS doesn't allow unaligned access.

Albin Tonnerre (Lutin) spotted this in his Debian MIPS test machine,
it was breaking at eet_data_get_double() that was storing an unaligned
double. This was being called from within edje test suite.

The current code will place the list node after the requested
"pool->item_size", of course guaranteeing the pointer inside the node
is aligned (otherwise a "char" or "short" would break its alignment).
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
Jean Guyomarc'h 1e287bde2b edje_cc: factorize two strlen()s
Reviewers: cedric, raster

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D454
2014-01-20 12:47:46 +09:00
Jérémy Zurcher 45340521f9 ecore_evas_wayland_common: fix compilation, missing bits of 892b1c5 2014-01-19 19:41:27 +01: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
ChunEon Park 16ef56d396 efl/emotion - added missing headers for getuid() geteuid(). 2014-01-18 18:49:27 +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
Sebastian Dröge c64b2fba9b emotion: Use the GStreamer 1.x module instead of the 0.10 one in the border example application 2014-01-17 09:32:45 +01:00
Sebastian Dröge 1ba3426405 emotion gstreamer1: Call _emotion_frame_new() for audio-only streams without visualisations too
Without this applications are not notified of any progress.

https://phab.enlightenment.org/T767
2014-01-16 22:45:09 +01: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
Guillaume Friloux 4ec00f8edc Fix ecore_con example file to call shutdown functions.
Found by Chris Michael.
2014-01-15 20:42:50 +01: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 cc82e2ded5 Textblock: Add test cases for style padding
In the previous commit, style padding has been changed, so
that lines don't get extra space just because there's a special
style (glow, ...)

This adds some test cases that check the actual geometry of the
lines relatively to each other.

NOTE: This test does not fail before the padding commits, as
_relayout_if_needed() adjusts the padding properly.
2014-01-15 17:55:27 +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 137383b532 Evas/cserve2: Add some safety checks when reading socket messages
Fixes CID 1039571 and 1039572.
2014-01-15 16:06:08 +09:00
Jean-Philippe Andre d8d5189003 Evas/cserve2: Remove dead code
Fixes CID 1039925.
2014-01-15 11:00:47 +09:00
Carsten Haitzler 82541d2c2f ecore xcim module - don't printf every time you start to add stdout noise 2014-01-15 09:55:05 +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 debbba4758 Evas/cserve2: Fix potential crash in image_free
Don't try to free an object that was already freed.
Basically, allow image_free(NULL).
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 99efaf4ad1 Evas/cserve2: Clear up File_Data when opening a new image
After a file changed, the "changed" flag was not reset in the
File_Data structure, although it was supposed to represent a
new entry altogether.
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
Jean-Philippe Andre 038f4b4fcf Evas/cserve2: Reduce error logs on invalid glyph load
Change message level from ERR to WRN, when a glyph is not
loadable because FT fails to load it or it contains 0 pixel.

cserve2 used to complain about invalid glyph 3, on a few fonts
2014-01-14 14:23:04 +09:00
Jean-Philippe Andre 6a4c84a6a4 Evas/cserve2: Fix crash in server on file change
An inotify callback is triggered when an image file changes,
and it is supposed to cleanup all references to this image.

Unfortunately, it was doing it in a very unsafe way as pointers
could become invalid, because of hash free callbacks in the
referenced image list. Add some list safety and always assume
the pointer might be dead after free operations.

TBH, this _file_changed_cb function looks very confused to me
(as it tries to bypass eina_hash_del).
2014-01-14 14:23:04 +09:00
Jean-Philippe Andre 00417fe256 Evas/cserve2: Fix memleak during shutdown
Don't reset the dead slave callback, as it is used to free the
slave worker's resources.
2014-01-14 14:23:04 +09:00
Jean-Philippe Andre f1aa32a4a4 Evas/cserve2: Use calloc instead of malloc
This will silence some warnings from valgrind (and add some
safety as well...)
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
Stefan Schmidt 384783a896 ecore_evas_win32: Fix build regression in ecore evas win32 engine
Regression introduced with fb59ac34a1
Simple typo during Eina_Bool convertion.
2014-01-13 13:36:28 +01:00
Sebastian Dröge 25fa72e295 emotion gstreamer1: Set visualizations if the vis name is not NULL
and not the other way around.
2014-01-13 10:02:34 +01:00
Sebastian Dröge a39f9ca579 emotion gstreamer1: Also handle DATE_TIME tag 2014-01-13 10:01:07 +01:00
Sebastian Dröge 3c53aea9a4 emotion gstreamer1: Fix wrong FIXME comment 2014-01-13 10:01:07 +01:00
Sebastian Dröge 86d552a7f7 emotion gstreamer1: Don't forget to allocate metadata struct 2014-01-13 10:01:07 +01:00
Sebastian Dröge 1c6cb51cdc emotion gstreamer1: Implement seekability check via seeking query 2014-01-13 10:01:07 +01:00
Sebastian Dröge 463ef7b964 emotion gstreamer1: Add support for selecting subtitle channels 2014-01-13 10:01:07 +01:00
Sebastian Dröge 8d034ca3b7 emotion gstreamer1: Volumes > 1.0 are valid too 2014-01-13 10:01:07 +01:00
Sebastian Dröge 79d5172f0a emotion gstreamer1: Add support for buffering and clock-lost handling 2014-01-13 10:01:07 +01:00
Sebastian Dröge 18f733fa23 emotion gstreamer1: Major cleanup of internal and GStreamer state handling 2014-01-13 09:50:10 +01:00
Sebastian Dröge a5f6a9274c emotion gstreamer1: Don't set pipeline to PAUSED during seeking
This is not required and is handled transparently inside GStreamer
already.
2014-01-13 09:50:10 +01:00
Sebastian Dröge c2f4967699 emotion gstreamer1: Use GST_PLAY_FLAG_VIS instead of the corresponding integer 2014-01-13 09:50:10 +01:00
Sebastian Dröge 5798e98571 emotion gstreamer1: Don't use the NATIVE_AUDIO/VIDEO flags
There are too many video formats we don't handle, so we should let GStreamer
handle the conversion if necessary.
2014-01-13 09:50:10 +01:00
Sebastian Dröge 01389b1d00 emotion gstreamer1: Use refcounting instead of in/out variable counting 2014-01-13 09:50:10 +01:00