AgeCommit message (Collapse)Author
2017-03-31release: Update NEWS and bump version for 1.19.0-beta4 releasev1.19.0-beta4Stefan Schmidt
2017-03-31efl: terrible kludge so avoid termination crash on osxJean Guyomarc'h
Currently, elementary programs crash on termination on macOS (seems Sierra-specific). This is very nasty, looks like deep memory corruption... Without valgrind (or like) support on Sierra, it is difficult to pinpoint the origin of the problem. Due to the imminient release, and after discussion with @stefan, this kludge will allow the release to happen. This commit MUST be reverted just after the release, so we don't blindfold ourselves! Ref T5245
2017-03-31elm_flipselector: delete ecore job in group del functionJaeun Choi
ecore_job_del was missing in a4d2c51d1404c1d8563dd7ac37e64ee105aa6226
2017-03-31elm_flipselector: fixed flipselector item deletion processJaeun Choi
flipselector item destructor had a severe drawback and this patch fixes it. when deleting multiple items at once, the view needs to be updated only once. however, the destructor updated the view on deletion of every single item and it caused a severe performance issue. the worst case happened when deleting a flipselector object - with 10000 items, it took 10 seconds to finish deletion. this patch has two points: 1. if a flipselector object is on deletion, item destructor doesn't update the view 2. otherwise, view update is handled in one job for multiple item deletion
2017-03-31Fixes latest crash w/rageAl Poole
Summary: eina_file_virtualize is causing issues. memfile_set is better but see attached bt. What to do??? Reviewers: raster, cedric Subscribers: jpeg Differential Revision:
2017-03-30elm_code: Fix newline crash on BSDAndy Williams
2017-03-29evil_string: fix strndup() for non-NULL terminated strings.Gustavo Sverzut Barbieri
If the given string is not null-terminated, then strlen() will go out of boundaries, we must limit the lookup to given 'n' parameter. To do so use strnlen(), that is a strlen() bounded by a maximum size.
2017-03-29ecore_con: remove warnings if FD_CLOEXEC is undefined.Gustavo Sverzut Barbieri
currently it's being defined in evil_fcntl.h, but the actual implementation of fcntl() in evil_fcntl.c is causing problems with sockets. So one possibility is to remove the ifdef, another is to change the implementation.
2017-03-29eina: fix compilation warning on _WIN32 due missing strndup()Gustavo Sverzut Barbieri
Eina.h will include Evil.h, but those using direct include of internal headers must include it as well.
2017-03-29others: support efl_net_dialer_windows.Gustavo Sverzut Barbieri
these are not working on windows yet due other factors, anyway add the proper ifdefs
2017-03-29ecore_ipc: use new efl_net_*_windows classes.Gustavo Sverzut Barbieri
2017-03-29ecore_con_local_path_new(): implemented for WindowsGustavo Sverzut Barbieri
2017-03-29implement efl_net_{socket,dialer,server}_windowsGustavo Sverzut Barbieri
This is the local socket for windows, analogous to AF_UNIX. `Efl_Net_Socket_Windows` is the base class doing `ReadFile()` and `WriteFile()` using overlapped I/O, as well as the close procedure (`FlushFileBuffers()`, `DisconnectNamedPipe()` and `CloseHandle()`). These are done on top of an existing HANDLE that is set by `Efl_Net_Dialer_Windows` (from `CreateFile()`) or `Efl_Net_Server_Windows` (from `CreateNamedPipe()`). The overlapped I/O will return immediately, either with operation completed or `ERROR_IO_PENDING`, which means the kernel will execute that asynchronously and will later `SetEvent(overlapped.hEvent)` which is an event we wait on our main loop. That `overlapped` handle must exist during the call lifetime, thus cannot be bound to `pd`, as we may call `CancelIo()` but there is no guarantee the memory won't be touched, in that case we keep the overlapped around, but without an associated object. Windows provides no notification "can read without blocking" or non-blocking calls that returns partial data. The way to go is to use these overlapped I/O, with an initial `ReadFile()` to an internal buffer, once that operation finishes, we callback the user to says there is something to read (`efl_io_reader_can_read_set()`) and wait until `efl_io_reader_read()` is called to consume the available data, then `ReadFile()` is called again to read more data to the same internal buffer. Likewise, there is no "can write without blocking" or non-blocking calls that sends only partial data. The way to go is to get user bytes in `efl_io_writer_write()` and copy them in an internal buffer, then call `WriteFile()` on that and inform the user nothing else can be written until that operation completes (`efl_io_writer_can_write_set()`). This is cumbersome since we say we "sent" stuff when we actually didn't, it's still in our internal buffer (`pd->send.bytes`), but nonetheless the kernel and the other peer may be adding even more buffers, in this case we need to do a best effort to get it delivery. A particular case is troublesome: `write() -> close()`, this may result in `WriteFile()` pending, in this case we wait using `GetOverlappedResult()`, *this is nasty and may block*, but it's the only way I see to cope with such common use case. Other operations, like ongoing `ReadFile()` or `ConnectNamedPipe()` will be canceled using `CancelIo()`. Q: Why no I/O Completion Port (IOCP) was used? Why no CreateThreadpoolIo()? These perform much better! A: These will call back from secondary threads, but in EFL we must report back to the user in order to process incoming data or get more data to send. That is, we serialize everything to the main thread, making it impossible to use the benefits of IOCP and similar such as CreateThreadpoolIo(). Since we'd need to wakeup the main thread anyways, using `OVERLAPPED.hEvent` with `ecore_main_win32_handler_add()` does the job as we expect. Thanks to Vincent Torri (vtorri) for his help getting this code done with an example on how to do the NamedPipe handling on Windows.
2017-03-29ecore_con_*_example: compile on win32.Gustavo Sverzut Barbieri
- win32 doesn't provide getline(). - _write() exists, use _write_() instead
2017-03-29ecore_ipc_client_example: win32 doesn't provide getline().Gustavo Sverzut Barbieri
2017-03-29efl_net_dialer_unix_example: read in loop while "can_read".Gustavo Sverzut Barbieri
While in UNIX we use 'select()/poll()' to query for read fds and this will eventually callback with "can_read" event, use the loop to match other implementations where can_read keeps true if not all data was read.
2017-03-29fix ecore con client exmaple to match cmdline help output for optionsCarsten Haitzler (Rasterman)
2017-03-29fix ecore con server exmaple to match cmdline help output for optionsCarsten Haitzler (Rasterman)
2017-03-29win: Mark unstable APIs as @beta (stack API)Jean-Philippe Andre
We have a tag for unstable API, use it. It'll be visible in the doc and force users to add the macro before being able to compile code. This amends d8dd685966858dcc393302.
2017-03-28window stacks - make these unstable bta api for nowCarsten Haitzler (Rasterman)
until settled, make these as beta for now.
2017-03-28ecore timeline animators - actually state the starting timeCarsten Haitzler (Rasterman)
the starting time has always been "now" like in timers (loop time). it would appear some people don't know this.
2017-03-27ecore pub headers - use __sun not __sun__ for ifdef for solarisCarsten Haitzler (Rasterman)
2017-03-27Eina_Value: strdup() is used, so include string.hVincent Torri
2017-03-27Ecore: siginfo_t type is defined in sys/siginfo.h on SolarisVincent Torri
2017-03-26gengrid: fix the crash in _elm_gengrid_item_edge_checkAmitesh Singh
_elm_gengrid_item_edge_check can have eo_it as NULL if none of widget item is focused. This could happen if item_focus is not enabled on items. test case: elm test -> gengrid 2 (enable only "focus hightligt set") and move focus. @fix Signed-off-by: Amitesh Singh <>
2017-03-26Gengrid: Bring the item into view scope before swapping.Umesh Tanwar
Summary: The gengrid item should be into view scope while reordering the items. @fix Signed-off-by: Umesh Tanwar <> Test Plan: elmementary_test -> gengrid 2 -> horizontal mode + reordering Reviewers: singh.amitesh, cedric Subscribers: cedric, atulfokk, jpeg Differential Revision: Signed-off-by: Amitesh Singh <>
2017-03-26Ecore_Con: Fix compilation on SolarisVincent Torri
FIONREAD is defined in sys/filio.h
2017-03-25elm_code: fix CID 1368489Andy Williams
2017-03-24efreet: Don't prefer the second perfect over the first in desktop_exec_find()Derek Foreman
We test a second match for a perfect match, then stop all further processing, but we never test the first match. This leads to a situation where a system wide .desktop file is given precedence over a local override. Instead, check the first match too. #test-e
2017-03-24ecore-evas: better handling for pointer_warp with buffer canvasMike Blumenkrantz
if buffer canvas is not image object, this needs to emit a move event to be consistent with other engines probably this should emit events in all cases, but adding for image buffers this close to release seems potentially risky so I'll leave that for later ref 4a691f79df88d4b26c5af48ffb811e28f031e2f1
2017-03-24evas_events: look for seats on hash instead of input devicesBruno Dilly
Summary: Otherwise it won't ever find the modifier masks. Fixes T5146 @fix Reviewers: iscaro, Jaehyun_Cho Subscribers: cedric, jpeg Maniphest Tasks: T5146 Differential Revision:
2017-03-24ecore-drm2: Remove unused field in Output structureChris Michael
The 'planes' field in Ecore_Drm2_Output structure is unused and can thus be removed here. @fix Signed-off-by: Chris Michael <>
2017-03-24eet cmdline tool - dont give garbage certificate length if there is noneCarsten Haitzler (Rasterman)
2017-03-24ecore audio: Fix loss of last streamJiwon Kim
Summary: pa_stream's write callback requires to size of stream data using 'len' parameter. This size depend on pulse audio's internal status and not consistent. When a efl read audio's last stream, length of read('bread') is less than write callback's 'len' parameter. If the gap between 'len' and 'bread' is small, last stream is played fortunately. Otherwise, the last stream is discarded. (It is doubtful about pa_stream's pre-buffering.) To prevent it, push silent stream which is amount of deficient length. @fix T5281 Reviewers: raster Reviewed By: raster Subscribers: cedric, jpeg, woohyun Maniphest Tasks: T5281 Differential Revision:
2017-03-23ecore_evas: delete exit idler when done with itJean Guyomarc'h
2017-03-23Eina_Xattr: fix memory corruptionArtem Popov
Summary: There should be reallocation +1 (for last '\0') and also checking >0, not !=0, because of getxattr can return -1 in case of error @fix Reviewers: cedric, raster, NikaWhite, jpeg Reviewed By: NikaWhite Subscribers: myoungwoon Tags: #efl Differential Revision:
2017-03-23ecore_evas extn - fix buffer n check for lock files with untrusted valCarsten Haitzler (Rasterman)
the code added by minkyoung has a definite security flaw here trusting e->response to be within a small range when all it is is an int - range is not limited other than that... so fix the code to check for range like further code below does. this commit went in 2 days ago... so not an existing bug fix.
2017-03-22evas: Fix a rare issue with GL and map and maskJean-Philippe Andre
The things you learn to love... The situation was: - An object is mapped (naviframe in an animation) - One of its children has a mask - The window is rotated by 90 or 270 degrees (landscape) The mask glsl code to invert the x,y coordinate depends on the screen rotation and this somehow was wrong. Tested on Tizen and in elm_test "Masking", made with @jiin.moon. @fix
2017-03-21elm_code: fix keyboard selection forwardAndy Williams
2017-03-21elm_map: Fix work of elm_map_overlay_icon_set if icon is
Summary: Delete check on NULL for icon object due to incorrect work. Function must delete icon in map overlay (according to documentation) if we set NULL, but with this check - nothing happening and after elm_map_overlay_icon_get we have not NULL returned value. @fix Reviewers: cedric, Hermet, raster, jpeg Reviewed By: cedric Subscribers: artem.popov Differential Revision:
2017-03-21ecore: proper macro usage for double comparision. Summary: The comparisions ↵Umesh Tanwar
are done between doubles. EINA_FLT_EQ -> EINA_DBL_EQ Summary: Signed-off-by: Umesh Tanwar <> Reviewers: singh.amitesh, cedric Subscribers: jpeg, atulfokk Differential Revision: Signed-off-by: Cedric BAIL <>
2017-03-21ecore_evas_extn: do not update plug image when lockfile is invalid.Minkyoung Kim
Summary: This prevent invalid shared memory access. Invalid access occur when server is resized sequentially from now to A-size to B-size, and client receive A resize message after resizing B. Then client try to render plug image with A-size, but shared memory is B-size buffer. Size are mismatch. This makes segmentation fault when uploading texture(gl) or rendering image(sw). Test Plan: Indicator rendering on Tizen3.0 platform. Reviewers: jypark, wonsik, dkdk,, jiin.moon, jpeg, cedric Reviewed By: cedric Subscribers: cedric, jpeg Differential Revision: Signed-off-by: Cedric BAIL <>
2017-03-20genlist: Fix another issue with insert sortedJean-Philippe Andre
Fixes T5274 @fix
2017-03-20evas gl: Fix a compilation warningJean-Philippe Andre
The fallback lib handle is not required unless EGL/GLES is used.
2017-03-18eina_debug: do not leak a spinlock when the path is not givenMarcel Hollerbach
2017-03-17gl_drm: Fix KHR partial update supportDerek Foreman
I fixed this in other engines but missed this one. The result is some terrible flickering on gl_drm on recent mali drivers.
2017-03-17ecore_drm2: Move function call after the NULL checkDerek Foreman
Was dereferencing ob before NULL checking it. What could possibly go wrong?
2017-03-17gl_drm: Properly disable EGL_EXT_buffer_age when we don't have itDerek Foreman
If we don't have EGL_EXT_buffer_age then we don't have buffer age - it's a completely independent extension to KHR partial update. This partially fixes partial update on recent mali drivers.
2017-03-17theme: remove event gaps in enlightenment window framesMike Blumenkrantz
2017-03-17efreet: CRI and fail after 10 attempts to connect to efreetdMike Blumenkrantz
if efreetd cannot be connected to, stop infinitely trying to spawn it since this generates crazy cpu load probably this path should also send some cache events so that watchers do not simply idle forever ref T5200