========= EFL 1.8.0 ========= Changes since 1.7.0: -------------------- Additions: * Add --with-api=XXX (both|legacy|eo) * Evil: - Add mkdtemp. - Add evil_rename() a wrapper for rename(). - Add strsep(). * Eina: - Add DOCTYPE children parsing in eina_simple_xml - Add eina_barrier thread API - Add eina_tmpstr_add(), eina_tmpstr_del(), eina_tmpstr_add_length() and eina_tmpstr_strlen(). - Add eina_thread API - Add eina_list_last_data_get - Add eina_xattr_fd_get(), eina_xattr_fd_set(), eina_xattr_del(), eina_xattr_fd_del(), eina_xattr_copy() and eina_xattr_fd_copy() - Add eina_stringshare_refplace() - Add eina_file_copy() - Add eina_log_print_cb_journald() - Add eina_list_shuffle() - Add eina_file_mkstemp() - Add eina_log_timing() - Add eina_inlist_first - Add eina_inlist_last - Add eina_str_convert_len() to work around broken eina_str_convert() - Add eina_file_dup() - Add eina_tiler_area_size_set(), eina_tiler_strict_set(), eina_tiler_area_size_get() - Add eina_file_map_populate() - Add eina_tiler_empty() * Eet: - Add eet_mmap() - Add eet_data_descriptor_name_get() - Add support EET_T_VALUE * Eo: - Add generic efl object infrastructure - Add debugging facility - Make eoid use mmaped tables from anonymous memory for safety. * Evas: - Add WebP image loader and saver modules. - Add ellipsis support in Evas_Object_Text. - Add EVAS_GL_LINE_OFFSET_HACK_DISABLE to turn off line shift correction by evas. - Add EVAS_GL_DIRECT_MEM_OPT to enable on-demand fallback memory allocation policy for EvasGL direct rendering. - Add engine specific alpha_get. - Add multiple output support API. - Add buffer age support to gl for automatic partial redraws. - Add GLX_MESA_release_buffers suppport to release unused buffers. - Add multiple font draws support to engines - Add Cserve2 scalecache support - Add evas_object_image_source_clip_set()/get() * Ecore_X: - Add window profile support. ECORE_X_ATOM_E_WINDOW_PROFILE_SUPPORTED ECORE_X_ATOM_E_WINDOW_PROFILE ECORE_X_ATOM_E_WINDOW_PROFILE_CHANGE ECORE_X_ATOM_E_WINDOW_PROFILE_AVAILABLE_LIST ECORE_X_ATOM_E_WINDOW_PROFILE_CHANGE_REQUEST ECORE_X_ATOM_E_WINDOW_PROFILE_CHANGE_DONE ecore_x_e_window_profile_supported_set() ecore_x_e_window_profile_supported_get() ecore_x_e_window_available_profiles_set() ecore_x_e_window_available_profiles_get() ecore_x_e_window_profile_change_send() ecore_x_e_window_profile_change_request_send() ecore_x_e_window_profile_change_done_send() ecore_x_randr_crtc_info_get() ecore_x_randr_crtc_info_free() ecore_x_dnd_self_begin() ecore_x_dnd_self_drop() support for text/x-moz-url DND operations - Add atom related with indicator type. - Add manual render code before deiconify - Add accessibility support. ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_BACK ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_SCROLL ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_MOUSE ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_ENABLE ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_DISABLE - add error messages for xlib ECORE_X_ATOM_XDND_DIRECTSAVE0 - add ECORE_X_SYNC env variable for xlib backend * Ecore_Wayland: - Store global wayland interfaces in a globals list so wayland programs can bind to other non-standard wayland protocol extensions. - ecore_wl_globals_get() - ecore_wl_registry_get() - Add #ifdef __cplusplus to Ecore_Wayland.h so C++ programs can link to and use the API. - Add support for double and triple click. - Add ecore_wl_window_alpha_set/get(). * Ecore_Evas: - ecore_evas_window_profile_supported_get() - ecore_evas_window_profile_set() - ecore_evas_window_profile_get() - ecore_evas_window_available_profiles_set() - ecore_evas_window_available_profiles_get() - ecore_evas_sub_ecore_evas_list_get() - Add infrastructure to handle message between ecore and parent ecore in Ecore_Evas. - Add window profile support to ecore_evas_extn. - Add window profile support to ecore_evas_buffer. * Ecore_Getopt: - Add ECORE_GETOPT_ACTION_BREAK * Ecore_audio: - Add PulseAudio backend. - Add Alsa backend. * Ecore_Input_Evas: - Add infrastructure to handle buggy touchscreen. * Edje: - textblock: Added support for size_range. - table: Added spread.{w,h} to repeat and automatically name an item in a TABLE part. - add embryo fill support for proxy parts - entry: Added selection handlers. - Add edje_object_part_text_input_panel_layout_variation_set/get API - Add EDJE_INPUT_PANEL_LAYOUT_DATETIME layout - support edc proxy.source_visible, proxy.source_clip - support edc map color set - Add threshold support to Edje draggable part. * Eeze: - Add a dummy libmount replacement for when libmount is not there. * Ecore_Con: - Add systemd socket activation support (ECORE_CON_SOCKET_ACTIVATE). * Ecore: - notify systemd that we are ready as soon as the main loop is running. - automatically support Watchdog. * Ecore_Imf: - Add ecore_imf_context_input_panel_layout_variation_set/get API - Add ecore_imf_input_panel_hide API - Add ecore_imf_context_input_panel_event_callback_call, clear API - Add ECORE_IMF_INPUT_PANEL_LAYOUT_DATETIME layout * Eio: - Add eio_eet_sync symbols. Deprecations: * Ecore_X: - Old profile stuffs. ECORE_X_ATOM_E_PROFILE ECORE_X_ATOM_E_PROFILE_LIST ecore_x_e_window_profile_list_set() ecore_x_e_window_profile_list_get() ecore_x_randr_crtc_gamma_ramp_size_get() ecore_x_randr_crtc_gamma_ramps_get() ecore_x_randr_crtc_gamma_ramps_set() * Ecore_Evas: deprecate DirectFB, XRender, WinCE, X11-16 and X11-8. * Eeze: deprecate libudev<148 and libmount<2.18 Removed: * Evas: - Remove support for DirectFB, XRender, WinCE, Glew, Direct3d, X11-16 and X11-8. - Remove svg loader from inside the tree. * Ecore_Evas: - Remove support for DirectFB, XRender, WinCE, Glew, Direct3d, X11-16 and X11-8. * Ecore_DirectFB: - Removed Improvements: * EFL: - Single EFL tree covering all EFL library components. - All efl object-freeing functions now take NULL without crashing or erroring - Use the right macro to disable fcntl. * Translations updates: - french. * Eina: - Speedup Eina Rbtree Iterator by recycling memory instead of repeatedly calling malloc/free. - eina_magic_fail() now throws error messages on NULL pointers instead of critical - Eina.h includes eina_alloca.h/alloca.h to define alloca() - Faster eina share del. - Don't over align data if they are already aligned. - Eina_Tiler now take tile size into account. - Improve support for 64bits system. - eina_strlcat now work with a NULL source. * Eet: - Display more information with eet -l -v. - Force thread to always run during eet_cache_concurrency test. * Evas: - Reduced number of enqueued font commands when rendering textgrid objects - Use Eina_File in webp, gif, tiff, png and eet loader - Upgrade liblinebreak to latest version of libunibreak. - Improved support for 64bits system. - GL engine downscale quality in smooth mode much improved with multisampling up to effectively 16x16 via shaders. - Textblock: Added proper size adjustments for "high" shaped texts. - Textblock : Added split cursor for BiDi text - Works around MESA/intel xorg bug where alpha channel of non-argb windows is not filled in with 0xff. - Update the map smart members really when it needs to render. - Reduce memory footrpint with evasgl to only make context on demand. - Reduce waiting on gl so it cvan fully run async from cpu. - GL engine don't map dri/drm buffer unless we are going to render. - GL engine get partial rendering support for several gl drivers. - Turn on scissors always to abe able to to partual render on some GL implementations properly. - Use eo array of callbacks to reduce callbacks memory footprint of Evas_Object_Box and Evas_Object_Table. - Optimized path for when map use the same color for all corner. - Asynchronous preload of GL texture. * Ecore_Con: - Rebase dns.c against upstream * Edje: - Entry: cursor position and location will be passed when it's really changed in case of mouse down, move, and up event. - Entry: remove ecore_imf_context_reset in mouse up event because it's useless. - Entry: remove ecore_imf_context_reset, cursor update in mouse move event because it's useless. - Entry: move ecore_imf_context_cursor_position_set from mouse down event to mouse up event. - Entry: remove ecore_imf_context_cursor_position_set in functions related to selection. - Entry: support &, < and > in preedit string. - Entry: remove duplicated ecore_imf_context_reset in adjusting the selection. - Entry: emits signals on keydown/up for theme to use. - Entry: move cursor to correct position when selection handlers are pressed. - Use ecore_audio in edje-multisense - Reduce memory consumption of Edje program handler. - Use Eina_Cow to reduce memory usage. - Use eo array of callbacks to reduce callbacks memory footprint. - Improve accuracy of part positioning by keeping rounding information as long as possible. * Ecore_Evas: - wayland-egl only renders now if last frame has been presented. * Embryo: - Use eina_file_mkstemp(). * Ecore_Audio: - Use eo api to batch more * Evas: optimize proxy rendering. Rendering performance is increased up to 2x in some cases. Fixes: * Eina: - Fix return value of eina_mmap_safety_enabled_set() and future eina_mmap_safety_enabled_get() returns after success. - Don't leak fd on exec. - Fix eina_xattr_value_ls() and eina_xattr_value_fd_ls() - Fix eina_prefix_new() with debian multilib without magic check file. - Prevent potential denial of service on eina_hash function. - Fix memleak in Eina_File. - Fix memory leak in eina_xattr_value_ls. - Fix magic failure in eina_value_array_count when array has not been allocated. - Fix issue when wchar_t is signed and eina_unicode does negative array lookups. * Eet: - Fix PPC (big endian) image codec bug. - Fix leak in eet_pbkdf2_sha1 with OpenSSL. - Fix possible buffer overflow in functions relying on EET_T_LAST - Fix endianess issue in Eet_Image. - Fix eet_mmap to use caches for lookup so it shares with everyone. * Evas: - Fix GLX native surface handling to use glXChooseFBConfig. This frixes a break in compositing on new intel mesa drivers. - Fix glGetIntegerv() in Direct Rendering mode for Evas GL to properly handle GL_SCISSOR_BOX and GL_VIEWPORT parameters. - Fix textblock textprop leak. - Fix evas_object_box to reset size_hint_min to zero when no child. - Don't leak fd on exec. - Fix polygon rendering bug in GL backend when there are cutouts. - Fix the gl line incorrect position drawing. - Fix potential segv in software engine native_set code. - Fix uninitialized data in Evas OpenGL engine. - Fix the line drawing clipping problem on arm gl driver. - Fix Evas RGBA_Image->flags.loaded for copied images. - Fix evas_object_image_is_inside() - Fix mask write lines to not choose too small segments. - Fix build of Evas XCB backend. - Fix evas bmp loader code which deal with image size. - Fix not up to date clip cache for Evas_Object_Text. - Fix a bug with breaking after format items in Evas_Object_Textblock. - Fix issue with line height when breaking on a format in Evas_Object_Textblock. - Fix SIGFPE in evas map update if image is 0. - Fix issue and simplified cursor_geometry_get in Evas_Object_Textblock. - Fix issue with horiz advance in Evas_Object_Text. - Fix issue with no-harfbuzz bidi in evas text utils. - Fix pixman surface alloc where allocated and image size differ. - Fix evas gif loader to return the correct frame duration. - Fix a selection issue with different scripts and bidi in Evas_Object_Textblock. - Fix bug not to display preedit string with PREEDIT_TYPE_NONE style in Evas_Object_Textblock. - Fix bug candidate word couldn't be selected with up/down key in the preedit status in Evas_Object_Textblock. - Fix Evas_Object_Text when LTR and RTL are used in the same paragraph. - Fix bug with the text object direction detection. - Fix font run detection for specific cases with 2 different fonts in the middle of a run. - Remove the freed worker from the pthread worker list when it's failed to create a new thread so as not to access it if a thread is working newly. - Fix gles support to only use GL_UNPACK_ROW_LENGTH if extension exists. - Fix Evas_Map to not crash even if image size is 0. - Fix evas word start/end find in textblock to be consistent with other toolkit logic on the matter. - Fix evas buffer engine allocation with non alpha output. - Click on left/right half of char does matter now. - If OS/2 table is available and the font is demi-bold, don't do runtime emboldment. - Fix font source have wrong current size. - Fix over redrawing of Evas_Map when applied on smart object. - Fix a bug with cluster size calculation with texts ending with ligatures. - Don't update evas update area by the clipper if the image obj visible is changed. - Fix gif decoding bug related with background color. - Fix gif bug related with scale down decode. - Fix a bug with deletion of ranges that end just a visual format in Evas_Object_Textblock. - If an object goes to be hidden without replacing the cur/prev state info, the object context can be corrupted at the next show time. Now it replaces the cur/prev in that rare case. - Fix evas gl_x11 in 16bpp and lower depths than 24/32 bpp. - Fix recursive proxy image rendering to just render black. - Fix line size calculation when using multiple fonts in a Evas_Object_Textblock. - Fix gif loader can't load image which has normal frames and error frames. - Don't try blend on gl backened if the render option is COPY. - Fix Evas_Object_Text line size calculation when using multiple fonts. - Fix crash if app use native surface in wrong engine. - Fix textblock to render pre again if it needs to relayouting. - Fix textblock ascent/descent calc to use superset of fontset data. - Fix evas gl partial swap to keep full renders if auto mode switching. - Fix memory leak in evas dri/drm swapbuf path. - Fix string leak in evas dri/drm swapbuf. - Fix evas proxy_unset of NULL image. - Fix slowness in glmap/unmap buffer by default in evas gl engine. - Fix evas segv on image del if loader is NULL. - Fix evas swapregion rect to account for rotation. - Fix "always scissor" to not break map in evas gl engine. - Fix nvidia texture from pixmap config depth match to be looser to avoid non-matches. - Fix evas gl engine to work in 16bpp nicely. - Fix native surface to be more anal about depth matching. - Correctly detect if a loader support asynchronous preloading. - Improve stability of Evas_Cserve2. - Fix gif cannot decode alpha value correctly. - Fix bs if app call image object update add after call api like fileset. - Fix evas_gl direct rendering to support partial redraw. - Fix issue with textblocks without fonts segfaulting. - Fix evas_common_convert_yuv_42* functions to actually return the converted data. - Fix jpeg loader cannot deal with exif information correctly. - Fix issue when parsing formats with quotes. - Fix infinite loop if app use ecore evas image - Fix a long-standing off-by-1 in the C "simd" multiplier. * Ecore: - Don't leak fd on exec. - Fix fd handler increase issue when ecore_pipe_add/del is called repeatedly. * Ecore_Con: - Fix a memory leak in ecore_con_dns when using ecore_con_server_connect. - Don't leak fd on exec. - Fix ecore_con case where freeing server double-frees clients. - Fix memory usage of Ecore_Con_Server. - Clean up gnutls session initialization. - Fix use of ecore_con_*_flush functions with unconnected objects. - Fix setting of write flags on ecore-con servers during connect. - Fix use of ecore_con_server_client_limit_set() (counter never decreased). - Fix use of ecore_con_client_timeout_set() and ecore_con_server_timeout_set() that makes timeout on connections even if you sent data. - Fix cl->start_time (initialization missing). So now ecore_con_client_uptime_get() is working. - Fix srv->start_time (initialization missing). So now ecore_con_server_uptime_get() is working for plain TCP connections. - Fix ecore_con_server_timeout_set(). It will now reset the timer. * Ecore_Evas: - Fix build of Ecore_Evas_Extn on Solaris. - Fix many memory problems with ecore_evas_extn. * Ecore_X: - Fix possible memory corruption in xrandr EDID functions. - Fix x11 error sync issue with ecore_x_image_get(). - Fix ecore_x_screen_is_composited/set() to work on multihead. - Fix ecore-x edid fetch to ftech 128, not 100 bytes. - Fix dangling pointer problem related with shmget fail. - Fix bug not check data value when get deiconify message. - Fix alpha set function not clear sync counter. - Fix selection parser to not overrun buffer read by using longs on 64bit. - Fix x11 selection trailing nul byte in text. - Fix BadMatch errors in ecore_x_image_get when requested size was larger than XImage size - Fix ecore_x_e_comp_pixmap_set to delete pixmap atom correctly * Ecore_Wayland: - Fix return type of function ecore_wl_outputs_get(). * Ecore_Input_Evas: - Fix ecore_input_evas didn't check the device id of mouse event. * Ecore-imf: - Fix crash when ecore_imf_context_del is called in ecore_imf_context_input_panel_callback_call. * Eio: - Don't leak fd on exec. - eio functions no longer crash when passed NULL and throw errors accordingly. - Fix bug in eio_file_map_new container set. * Edje: - Prevent a crash even if an invalid object is swallowed into an edje object. - Fix cache miss when active edje hash is empty. - Improved textblock part fit. - Fix anchor clicked mouse signals for selection-enabled entries. - Fix edje_color_class_list() and edje_text_class_list() to look at right hashes. - Properly report file not found in Edje. - Fix custom states for SPACER parts. - Fix edje program filters. - Fix bug scroll works when PgDn, PgUp, Home, End key in entry is pressed in preedit state. - Fix edje entry to respect filters and if input filtered out, don't clear selections. - When cursor is located to each edge, entry now doesn't grab events for cursor movement. - Fix useless ecore_imf_context_reset call in case of pressing ESC and Return key. - When selected word exists, selection is cleared and cursor remains on the current entry by additional key input. - Fix custom states for proxy parts. - Entry: return surrounding string until the start position of selection - Textblock: fixed issue with quoted formats. - Textblock: feep the text styles when new font by the text class is applied. - Lua: Stop leaking evas objects in Lua. - Fix edje min size calc to calc sub GROUP parts too. - Fix edje multisense segv (free non-malloced data from eet). - Fix some logic issue when using fixed point path. - Correctly set match flag of signal callbacks - Fix size calculation of flags of signal callbacks * Efreet: - Fix desktop command parsing of https. * Emotion: - Fix memory leak in gstreamer_ecore_x_check. * Ethumb: - Fix memory leak in error case. * Eeze: - Fix sensors to not segv on shutdown.