Guilherme Iscaro [Fri, 21 Oct 2016 04:56:00 +0000 (13:56 +0900)]
This series fixes two problems in the VNC implementation.
One deadlock and one segfault.
Patch 1:
Software X11 Evas Engine: Fix deadlock
Summary:
The patch
bc6e8d269208 introduced a callback responsible to notify the pixels
that were sent to the X server. Since all EFL rendering is done by another
thread, the callback should be called from the main thread context.
To achieve this behaviour evas_software_x11_region_push_hook_call()
was using ecore_thread_main_loop_begin(), which may cause deadlocks, since
evas mainloop waits for the render thread and the render thread waits
the mainloop.
In order to fix this problem, the function
ecore_main_loop_thread_safe_call_async() will be used to
schedule the callback to run in the main loop context.
Since a callback is schedule to run in async manner, the pixels that
were sent to the X server must not be deleted until the user is informed.
In order to avoid more mallocs(), this patch adds the support for refcounts to the
X_Output_Buffer and Xcb_Output_Buffer.
Patch 2:
Ecore_Evas VNC: Use the image size to create the buffer.
In same cases they may differ and may lead to a segfault, since
memcpy() causes a buffer overrun.
Reviewers: bdilly, raster
Reviewed By: raster
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4323
Gustavo Sverzut Barbieri [Fri, 21 Oct 2016 02:15:09 +0000 (00:15 -0200)]
efl_net_server_tcp: use async getaddrinfo() to resolve server name.
this allows nicer usage such as 'localhost:http' as the address, which
will resolve to [::1]:80 (if IPv6 is enabled) or 127.0.0.1:80 if only
IPv4 exists.
Gustavo Sverzut Barbieri [Fri, 21 Oct 2016 02:11:43 +0000 (00:11 -0200)]
efl_net_server_example: improve error messages (show text).
Gustavo Sverzut Barbieri [Thu, 20 Oct 2016 22:43:02 +0000 (20:43 -0200)]
ipv6_only: use system default if unset.
only apply the value if IPv6 && set. If unset (now 0xff), then call
the getter so the property is in sync with the kernel default.
Carsten Haitzler (Rasterman) [Fri, 21 Oct 2016 00:39:00 +0000 (09:39 +0900)]
ecore anim - actually fix by checking fd not thread handle
this should remove a 0.5 sec or so pause at shutdown of efl apps.
@fix
Carsten Haitzler (Rasterman) [Thu, 20 Oct 2016 13:24:40 +0000 (22:24 +0900)]
eocre animator - the anim thread is polled on shutdown use volatile
we sit in a loop wating for animator thread to die on shutdown
(sleeping for 1000us), so make it a volatile so every check actually
checks and doesnt cache.
@fix
Gustavo Sverzut Barbieri [Thu, 20 Oct 2016 20:45:12 +0000 (18:45 -0200)]
efl_io_copier: always cancel job on destructor.
It's already deleted on close(), but that's now optional
(close_on_destructor).
Gustavo Sverzut Barbieri [Tue, 18 Oct 2016 23:24:16 +0000 (21:24 -0200)]
efl_net_server_tcp: allow IPv4 over IPv6 sockets.
Sometimes we want to handle both IPv4 and IPv6 in the same socket,
instead of spawning 2 servers, one for each protocol. That is achieved
by means of disabling IPV6_V6ONLY socket option, present in most
recent platforms.
Derek Foreman [Thu, 20 Oct 2016 19:13:49 +0000 (14:13 -0500)]
gl_x11: Do KHR Partial Damage properly
KHR partial damage must be set once at the beginning of rendering with
buffer damage for the entire scene to be rendered. Doing otherwise can
result in graphical anomalies on some GL implementations.
Stefan Schmidt [Thu, 20 Oct 2016 15:29:36 +0000 (17:29 +0200)]
docs: eina_types: add descriptions for some structs for these eina beta api's
Stefan Schmidt [Thu, 20 Oct 2016 14:21:07 +0000 (16:21 +0200)]
docs: edje: add some missing descriptions in edje enums
Stefan Schmidt [Thu, 20 Oct 2016 13:49:14 +0000 (15:49 +0200)]
docs: eldbus: document all eldbus structs and its members
Stefan Schmidt [Thu, 20 Oct 2016 11:23:07 +0000 (13:23 +0200)]
docs: ecore_con: add descriptions for the HTTP error codes
With this commit the documented globals reach 100%. Please keep it that way.
Stefan Schmidt [Thu, 20 Oct 2016 10:55:36 +0000 (12:55 +0200)]
docs: ecore_con: add docs for HTTP authentication method enum
Stefan Schmidt [Thu, 20 Oct 2016 10:47:53 +0000 (12:47 +0200)]
docs: ecore_con: be a bitmore verbose for the HTTP version description
Stefan Schmidt [Thu, 20 Oct 2016 10:45:48 +0000 (12:45 +0200)]
docs: ecore_con: add description for efl net dialer errors
Mykyta Biliavskyi [Thu, 20 Oct 2016 15:14:32 +0000 (18:14 +0300)]
Elm theme: correct parse a theme filename on Windows OS.
Windows os uses ':' as delimiter between disk name and file path.
<disk>:/<dir>/file.ext. In this commit added parse case for <disk_name>
symbol meets before ":/".
Daniel Kolesa [Thu, 20 Oct 2016 14:48:41 +0000 (16:48 +0200)]
eolian gen: use EWAPI for events instead of EOAPI
Apparently only methods/properties can be EOAPI.
Daniel Kolesa [Thu, 20 Oct 2016 14:44:20 +0000 (16:44 +0200)]
eolian gen: use EWAPI for all generated variables
Daniel Kolesa [Thu, 20 Oct 2016 14:03:29 +0000 (16:03 +0200)]
ecore con: generate vars instead of writing them manually
Daniel Kolesa [Thu, 20 Oct 2016 14:01:11 +0000 (16:01 +0200)]
eolian gen: automatically uppercase names for vars/constants
Daniel Kolesa [Thu, 20 Oct 2016 13:22:14 +0000 (15:22 +0200)]
eolian gen: update tests to cover var generation
Daniel Kolesa [Thu, 20 Oct 2016 13:11:17 +0000 (15:11 +0200)]
eolian gen: generate vars in source files for globals with value
Daniel Kolesa [Thu, 20 Oct 2016 12:39:50 +0000 (14:39 +0200)]
eolian gen: initial generation of variables in headers
Felipe Magno de Almeida [Thu, 20 Oct 2016 06:52:18 +0000 (04:52 -0200)]
eo-cxx: Fix compilation and warnings in clang
Jean-Philippe Andre [Tue, 18 Oct 2016 02:32:05 +0000 (11:32 +0900)]
elm: Remove elm app client/server implementation & APIs
This removes EO APIs related to an unmaintained client/server
model for applications. The reasons for this removal are the
following:
- unused
- no support in E
- relies on dbus as the sole transport layer
- unmaintained since the original patches
- only EO API (iow: beta, never released API)
I've also never seen the test cases (in elementary_test) actually
work.
According to Gustavo (k-s), the original author of this feature
is not involved in EFL at the moment, and unlikely to be in the
near future.
Note that terminology has in the past used those APIs when it
was still using some beta EO APIs. This code is now long gone,
removed in terminology commit
3ffcbadd6f9881472db6 (2014/12/13,
for version 0.8.0)
If someone wants to step in and maintain the implementation,
protocol and (EO) API, then feel free to revert this patch
and revive the feature. But it will need to be more solid than
this implementation.
Jee-Yong Um [Wed, 19 Oct 2016 21:50:12 +0000 (23:50 +0200)]
eolian: fix build warning
Differential Revision: https://phab.enlightenment.org/D4356
Derek Foreman [Wed, 19 Oct 2016 21:04:02 +0000 (16:04 -0500)]
wayland_egl: Remove weirdo buffer age kludge cargo culted from gl_x11
There's no reason why we'd need a full redraw if the buffer age for
this buffer isn't the same as the buffer age for the last buffer, so
let's cut out this thing.
Derek Foreman [Wed, 19 Oct 2016 20:58:59 +0000 (15:58 -0500)]
wayland_egl: Use surface damage instead of buffer damage
We should always pass surface damage to eglSwapBuffersWithDamage.
Derek Foreman [Wed, 19 Oct 2016 20:54:08 +0000 (15:54 -0500)]
gl_drm: Use surface damage instead of buffer damage
We should always pass surface damage to eglSwapBuffersWithDamage.
Derek Foreman [Wed, 19 Oct 2016 20:33:09 +0000 (15:33 -0500)]
evas_engines: Send both surface and buffer damage to outbuf_flush callback
Some engines should using sending surface damage, until now we'd only ever
provided them with buffer damage.
The difference is that surface damage is the damage to the surface the
compositor is displaying, and the buffer damage is the damage to the
buffer the client has rendered. These are different when the client
is using multiple buffers of different ages to render into.
Anything that calls eglSwapBuffersWithDamage, wl_surface_damage() or
wl_surface_damage_buffer() should be using surface damage, and not
buffer damage.
This patch is intended to make no functional change - any flush cb that
used buffer damage before still should. Actual fixes to follow.
Apologies if I broke any engines - it's a bit of a copy and wasteland
out here.
Derek Foreman [Wed, 19 Oct 2016 16:59:34 +0000 (11:59 -0500)]
Revert "wayland_shm: Add swap mode fallback when buffer age changes"
This reverts commit
62ca4486ea30fd63a5589ea7af373a5cb9982031.
Honestly, I think the gl_x11 code doesn't make sense either. :)
There's no logical reason that we have to do that, though it may be
hiding some other bug? If that's the case, the bug should be fixed
properly.
Cedric BAIL [Wed, 19 Oct 2016 20:40:49 +0000 (13:40 -0700)]
ecore: test recursive case on efl_future.
Cedric BAIL [Wed, 19 Oct 2016 20:39:10 +0000 (13:39 -0700)]
ecore: allow efl_future_cancel on a promise currently being resolved.
This is necessary for allowing proper handling of recursive cancel.
Tom Hacohen [Wed, 19 Oct 2016 15:20:19 +0000 (16:20 +0100)]
Eo: Add a regression test for ref leak in function resolve
This adds a regression test for the last commit.
Tom Hacohen [Wed, 19 Oct 2016 15:14:15 +0000 (16:14 +0100)]
Eo: Fix reference leak when failing to resolve function.
When resolving a function for an object the object would get reference,
and then in some failure cases won't be freed.
I suspect this is a regression following the reshuffling that was done
in that function recently.
Thanks to zmike for investigating and reporting this.
Fixes T4740
@fix
Tom Hacohen [Wed, 19 Oct 2016 15:14:03 +0000 (16:14 +0100)]
Eo: Remove no longer relevant tests.
Daniel Kolesa [Wed, 19 Oct 2016 13:24:26 +0000 (15:24 +0200)]
eolian: fix the nonsensical semantics for variables
Both variables and constants can have extern on them (it means the same thing
as in types, they won't get generated in C). This is different from the previous
semantics which only allowed extern on globals, which makes no sense.
Both globals and constants are allowed to have a value (previously only
constants were); constants are required to have a value. Globals having
a value is just a convenience for initialization during source generation.
This is unlike the previous behavior, where the value was optional for both
globals and constants and only allowed when not marked extern, which makes
no sense either.
Obivously, even when globals have a value, they're not allowed to be used
in expressions, as they cannot be evaluated at compile time (they're mutable).
SangHyeon Lee [Wed, 5 Oct 2016 06:36:04 +0000 (15:36 +0900)]
gengrid: support for non homogenous items
Summary:
Dimensions of gengrid items can be altered for
non homogenity.
Care must be taken however to set the homogenous
size for items using elm_gengrid_item_size_set().
In horizontal mode only the heights will change
and in vertical mode only the widths. Fixed dimension
will be as set with elm_gengrid_item_size_set().
This is forked by https://phab.enlightenment.org/D2422
Test Plan:
elementary_test -to "Gengrid Resized Items"
Current test program provides focus autoscroll
and item looping options.
Reviewers: raster
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4330
Jean-Philippe Andre [Wed, 19 Oct 2016 05:05:31 +0000 (14:05 +0900)]
evas: Last fix... now it builds
Jean-Philippe Andre [Wed, 19 Oct 2016 04:39:02 +0000 (13:39 +0900)]
evas: More compilation fixup with EGLImage
This is what happens when you can't test a patch yourself ^^
Jean-Philippe Andre [Wed, 19 Oct 2016 04:32:55 +0000 (13:32 +0900)]
evas: Fix compilation with older EGL (maybe <1.5)
EGLImage was not introduced until very recently. EGLImageKHR was
the proper type. Thanks Roy for the report.
Cedric BAIL [Tue, 18 Oct 2016 23:49:04 +0000 (16:49 -0700)]
ecore: handle recursive trigger of promise by the cancel of a future.
This avoid double free/double callback call.
Gustavo Sverzut Barbieri [Tue, 18 Oct 2016 22:00:52 +0000 (20:00 -0200)]
efl_net_dialer_udp: enable SO_BROADCAST before sending to 255.255.255.255
Like other toolkits, let's enable this automatically for users before
connecting to 255.255.255.255 IPv4 (IPADDR_BROADCAST), otherwise most
systems will just fail to connect and send packets.
Gustavo Sverzut Barbieri [Tue, 18 Oct 2016 20:51:59 +0000 (18:51 -0200)]
efl_net_dialer_udp: "connect" to an UDP server to send and receive data.
Like existing ecore_con code, this does not use SOCKSv5 UDP
proxy. It's kinda cumbersome to add since requires a keep alive TCP
connection to the server, a second UDP channel and framing around the
original UDP frame.
Added UDP_CORK (if present) to match TCP_UDP present in TCP sockets,
this allows one to execute multiple write() calls that will result in
a single datagram, generated when CORK becomes FALSE again.
The efl_io_copier_example.c now accepts this as output. There is no
input UDP as there is no way to notify the server of a connection
(since such thing doesn't exit), usually servers react after a
datagram is received, replying to the source.
Gustavo Sverzut Barbieri [Tue, 18 Oct 2016 18:32:04 +0000 (16:32 -0200)]
efl_net_socket_tcp: only emit error message if cork is being enabled.
by default we'll start with cork=0 and on adoption of a FD we'll apply
cached values, thus we'd try to apply cork=0 (default) and it would
error, which is annoying on platforms without such feature.
since users interested in TCP_CORK will enable it first, they will get
the error at that point.
Derek Foreman [Tue, 18 Oct 2016 20:52:56 +0000 (15:52 -0500)]
ecore: replace arbitrary time with 32-bit safe arbitrary time
The end of time is much closer than you think. it_value.tv_sec is
a signed 32-bit number on 32-bit machines. Using a negative tv_sec
causes timerfd_settime() to fail.
Jean-Philippe Andre [Tue, 18 Oct 2016 08:36:43 +0000 (17:36 +0900)]
wayland_shm: Add swap mode fallback when buffer age changes
This copies the behaviour in opengl_x11 engine, where the buffer
age needs to be continuously the same to be taken into account.
If the age varies, then we fallback to a full redraw.
Apparently this fixes issues on actual devices. I tested this
patch in weston (I didn't have issues before and buffer age is 1).
Vyacheslav Reutskiy [Tue, 18 Oct 2016 05:49:07 +0000 (08:49 +0300)]
edje_edit: avoid generate '(null)' value for image.normal
Vyacheslav Reutskiy [Mon, 17 Oct 2016 14:25:43 +0000 (17:25 +0300)]
edje_edit: add correct tweens generation for inherit state
Vyacheslav Reutskiy [Mon, 17 Oct 2016 13:56:11 +0000 (16:56 +0300)]
edje_cc: set correct value for attr set for MESH_NODE
On parce the image.normal token set attribute 'set' only for part type
EDJE_PART_TYPE_MESH_NODE.
@fix
Shilpa Singh [Tue, 18 Oct 2016 01:56:53 +0000 (10:56 +0900)]
elm_atspi_bridge: visible data changed signal not sent issue fix.
Summary:
_visible_data_changed_signal_send function checks for wrong object,
hence always returns with out actually sending signal.
The state is set to pd->object_broadcast_mask and not
pd->object_children_broadcast_mask in _set_broadcast_flag function.
Test Plan:
Send the visible data changed signal from any widget, but signal
is not sent.
Reviewers: cedric, lukasz.stanislawski, kimcinoo
Reviewed By: kimcinoo
Subscribers: rajeshps, govi, jpeg
Differential Revision: https://phab.enlightenment.org/D4352
Andrii Kroitor [Mon, 17 Oct 2016 15:51:59 +0000 (18:51 +0300)]
edje_edit: refactor eet file usage
Summary:
Move opening for read/write/read-write and error message to internal method
Reuse eet file from Edje instead of opening it again in read-only mode
Add wrapper for eet_close to skip closing if internal file was used
Reviewers: NikaWhite
Subscribers: cedric, jpeg, #eflete
Differential Revision: https://phab.enlightenment.org/D4353
Chris Michael [Mon, 17 Oct 2016 14:43:43 +0000 (10:43 -0400)]
elementary: Fix call to offer_supports_mime function
As this function was misnamed in Ecore_Wl2, update the code here to
use the proper API function.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Mon, 17 Oct 2016 14:43:27 +0000 (10:43 -0400)]
ecore-wl2: Fix typo in API function name
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Jean-Philippe Andre [Mon, 17 Oct 2016 10:28:14 +0000 (19:28 +0900)]
map: Fix elm_map usage (typo)
Simon Lees [Mon, 17 Oct 2016 10:28:04 +0000 (20:58 +1030)]
Emile: use stronger ssl cipher
Follows on from
356a1aa87a04a8d1c43e01fa861270d0947069c0 emile
didn't exist when this work was done originally
Simon Lees [Mon, 17 Oct 2016 03:28:32 +0000 (13:58 +1030)]
ecore_ssl: Use stricter cipher suites
Thanks to Victor Pereira from the SUSE Security team for auditing
this and recommending better options.
This has been discussed several times but knowone ever got to
commiting it.
Subhransu Mohanty [Fri, 14 Oct 2016 10:45:42 +0000 (19:45 +0900)]
evas/map: do nothing when same map is set again
Reviewers: cedric, Hermet, jpeg
Reviewed By: jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4344
Shuhrat Dehkanov [Fri, 14 Oct 2016 10:37:46 +0000 (19:37 +0900)]
ELM: sync "clicked" usage with other places in the lib
Summary: In all other places "clicked" is defined as a local variable.
Reviewers: tasn, jpeg
Reviewed By: jpeg
Subscribers: cedric, minkyu
Differential Revision: https://phab.enlightenment.org/D4349
Dave Andreoli [Sat, 15 Oct 2016 18:59:57 +0000 (20:59 +0200)]
Emotion: prefer ratio to calculate sizes
Instead of calculate the ratio from the sizes, calc the width from the ratio,
as ratio seems always accurate.
Fallback to the old code if ratio not available (tbh I never see this case)
@Fix EMOTION_ASPECT_KEEP_BOTH with some rare strams, mostly DVD and online stuff
Carsten Haitzler (Rasterman) [Sat, 15 Oct 2016 02:28:01 +0000 (11:28 +0900)]
fix edje_cc segv when compiling bling bling theme
accessed parts out of range for the part table. check part count first
before checking. fixes segv. @fix
blinblng: http://enform.haxlab.org/files/blingbling_e21.tgz
Derek Foreman [Fri, 14 Oct 2016 21:03:47 +0000 (16:03 -0500)]
evas gl x11 engine - Wrap eglCreateImage
eglCreateImage and eglCreateImageKHR have different parameters - the
attribute list is EGLint for one and EGLAttrib for the other. Since
EGLAttrib is long, on a 64-bit system it's a different size than EGLint.
This was causing a crash in Enlightenment's wl_x11 on 64-bit machines when
trying to use a gl client.
Add a thin wrapper to use whichever is available and pass the appropriate
sized data.
Derek Foreman [Fri, 14 Oct 2016 21:02:45 +0000 (16:02 -0500)]
ecore_evas_wayland: Don't use frame callbacks on windows with no shell surface
If we set a frame callback on a window with no shell surface (ie: and unmapped
window), the frame callback will never fire. This was preventing some
applications like rage from ever posting a frame.
Derek Foreman [Fri, 14 Oct 2016 21:01:54 +0000 (16:01 -0500)]
ecore_wl2: add API for testing if a window has a shell surface
Daniel Kolesa [Fri, 14 Oct 2016 13:31:23 +0000 (15:31 +0200)]
eolian gen: better checks for whether to add space after type
Stefan Schmidt [Fri, 14 Oct 2016 10:36:25 +0000 (12:36 +0200)]
examples: eolian_cxx: adapt code generation to changed eolian_gen commandline
The commandline options have changed for eolian_gen to generate the code. Adapt
the makefile helpers to fix the build break in examples
Carsten Haitzler (Rasterman) [Fri, 14 Oct 2016 07:20:22 +0000 (16:20 +0900)]
fix possible eina file shutdown issue
i am not sure as i cannto reproduce this, but i hope this fixes T4677
by ensuring if eina_file_shutdown is called it cannto double-free a
hash.
Subhransu Mohanty [Fri, 14 Oct 2016 06:52:51 +0000 (15:52 +0900)]
evas/module: add a new module in vg_saver for eet
Reviewers: cedric, jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4350
Jean-Philippe Andre [Thu, 13 Oct 2016 08:59:13 +0000 (17:59 +0900)]
evas: Fix evas_object_smart_clipped_clipper_get
This was broken for smart objects that are not "clipped smart
objects". This fixes the example evas_smart_object.
NOTE: This EAPI was removed in efl-1.18!
/!\ This was an uncaught API break between 1.17 and 1.18 /!\
@fix
Jean-Philippe Andre [Thu, 13 Oct 2016 08:42:38 +0000 (17:42 +0900)]
evas: Improve render debug logs
Compiled out by default
Carsten Haitzler (Rasterman) [Fri, 14 Oct 2016 02:08:45 +0000 (11:08 +0900)]
ecore_evas - fix setting urgent immediately after show
fixes T4726
Derek Foreman [Thu, 13 Oct 2016 22:40:38 +0000 (17:40 -0500)]
ecore-wl2: Fix input and opaque region setting
Bad y co-ordinate resulted in broken shadows after session recovery.
@fix
Chris Michael [Thu, 13 Oct 2016 16:52:43 +0000 (12:52 -0400)]
elementary: Fix issue of using uninitialized values
Coverity reports that Evas_Coord_Rectangles were being used here without being
initialized so declare those variables with some initial values
Fixes CID1362984
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 13 Oct 2016 16:50:12 +0000 (12:50 -0400)]
evas: Fix directly dereferencing pointer which may be NULL
Coverity reports this as a dereference before null check which implies
that 'cur' May be null here, so let's not use it before we check it.
Fixes CID1363765
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 13 Oct 2016 16:47:38 +0000 (12:47 -0400)]
evas: Fix directly dereferencing pointer which may be NULL
Coverity reports this as a dereference before null check which implies
that 'pd' May be null here, so let's not use it before we check it.
Fixes CID1364114
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Thu, 13 Oct 2016 16:43:44 +0000 (12:43 -0400)]
evas: Fix missing varargs cleanup
This patch fixes Coverity CID1364123 which reports that (in some
cases) va_end was not being called for var args. As they were
previously initialized with va_start, then va_end should be getting
called.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Marcel Hollerbach [Thu, 13 Oct 2016 14:25:37 +0000 (16:25 +0200)]
gengrid: call this on the pam class not on the normal class
this fixes gengrid.
Daniel Kolesa [Thu, 13 Oct 2016 13:03:50 +0000 (15:03 +0200)]
eolian gen: use the new data type API to simplify the code
Daniel Kolesa [Thu, 13 Oct 2016 12:54:12 +0000 (14:54 +0200)]
eolian: add API to get the C class datatype
Felipe Magno de Almeida [Thu, 13 Oct 2016 08:51:52 +0000 (17:51 +0900)]
Fix use of undeclared type in C++ tests compilation
Moved Evas_Object_Intercept_Cb_Type; typedef declaration after enum
_Evas_Object_Intercept_Cb_Type definition
Felipe Magno de Almeida [Wed, 12 Oct 2016 05:53:46 +0000 (14:53 +0900)]
cxx: Fix Makefiles for C++ compilation and installation
Marcel Hollerbach [Thu, 13 Oct 2016 08:27:06 +0000 (10:27 +0200)]
ecore: free futures which are still pending on shutdown
otherwise we are leaking a eina list.
This was discovered while running the elm_suite with CK_FORK=no, since
ecore and eina are init´ed and shutdown´ed, after the shutdown this list
points to freeed memory pools. So in the next testcase the list is
invalid and crashes. This fixes it with freeing the list on shutdown.
Subhransu Mohanty [Thu, 13 Oct 2016 08:09:39 +0000 (17:09 +0900)]
evas/module: add a new module in vg_loader for eet
Reviewers: jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4347
Jean-Philippe Andre [Thu, 13 Oct 2016 01:25:03 +0000 (10:25 +0900)]
evas: Use proper type in smart objects API (eo)
Daniel Kolesa [Wed, 12 Oct 2016 13:08:37 +0000 (15:08 +0200)]
eolian gen: use the C get function name getter instead of manual concat
Daniel Kolesa [Wed, 12 Oct 2016 13:05:46 +0000 (15:05 +0200)]
eolian gen: utilize the new class C name getter instead of manual concat
Daniel Kolesa [Wed, 12 Oct 2016 12:56:22 +0000 (14:56 +0200)]
eolian: add an API to get the C name used to access the class
Vyacheslav Reutskiy [Wed, 12 Oct 2016 12:00:05 +0000 (15:00 +0300)]
edje_edit: new API for generate source code for color classes
Extend edje edit deberate source API. Add two new API.
- edje_edit_object_color_class_list_get return a list of used color classes for
given object
- edje_edit_color_classes_source_generate is generate code for given
color classes list
Vyacheslav Reutskiy [Tue, 11 Oct 2016 12:50:10 +0000 (15:50 +0300)]
edje_edit: add API for get source code of global block data
This API is annex for edje_edit_object_source_generate. Together this
API's provide a mechanism for generate source for custom groups from
a edj file or more.
Vyacheslav Reutskiy [Tue, 11 Oct 2016 11:38:34 +0000 (14:38 +0300)]
edje_edit: add API for generate group source code without 'collection'
Subhransu Mohanty [Wed, 12 Oct 2016 09:39:10 +0000 (18:39 +0900)]
evas/module: Added a new module vg_loader for svg
Reviewers: cedric, jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4346
Jean-Philippe Andre [Wed, 12 Oct 2016 09:14:58 +0000 (18:14 +0900)]
elm_widget: Remove unnecessary set{} get{} in eo file
Jean Guyomarc'h [Wed, 12 Oct 2016 06:07:25 +0000 (08:07 +0200)]
edje: fix memory leak
Jean-Philippe Andre [Wed, 12 Oct 2016 02:31:17 +0000 (11:31 +0900)]
evas: Mark group_add/del as internal
Lacking a proper internal tag, I'm using both protected (it is
in fact a protected access function) and beta (to mark as unstable,
not real API).
New smart objects based on EO only should rely on constructor,
finalize and destructor exclusively. In theory, this should be fine.
Unfortunately it may be impossible to inherit from the Efl.Ui.Win
class as it uses a really bad hack and calls super.constructor
inside the finalize method.
Jean-Philippe Andre [Tue, 11 Oct 2016 07:54:31 +0000 (16:54 +0900)]
evas/elm: Remove function group_resize
This is an override of efl_gfx_size_set. Same as before, the
order of operations matter so it is possible that a corner
case will break. In particular, legacy code was:
- intercept
- smart resize (do stuff), super, super, super
- evas object resize
The new code is more like:
- intercept
- super, super, super, evas object resize
- do stuff
But unfortunately this broke elm_widget (read: all widgets) as
the internal resize was done before the object resize. So,
inside the resize event cb, the resize_obj size would not match
the smart object size. >_<
Jean-Philippe Andre [Tue, 11 Oct 2016 03:39:05 +0000 (12:39 +0900)]
evas/elm: Remove function group_move
This is an override of efl_gfx_position_set.
As for the other patches, I hope I didn't break anything.
A problem likely to happen is that the super call was inserted
too early or too late in the call flow. For instance:
_myclass_position_set(obj, x, y) {
position_set(super(obj), x, y);
position_get(obj, &prevx, &prevy);
do_something_with_delta_xy();
}
The above code flow is obvisouly wrong, but may have crept in this
patch (such a bug sneaked in inside smart object, breaking
everything at first).
Jean-Philippe Andre [Tue, 11 Oct 2016 03:02:20 +0000 (12:02 +0900)]
evas: Move move_children_relative to legacy only
While this kind of API seems to make sense with smart objects
(relative coordinates), it is currently not used apart from
the smart object class itself.
So, for now, I'm moving this to legacy to clean up Efl.Canvas.Group
and we can later add the equivalent in a clean "group" API.
Jean-Philippe Andre [Mon, 10 Oct 2016 09:59:42 +0000 (18:59 +0900)]
evas/elm: Remove group_show and group_hide
These should be just overrides of Efl.Gfx.visible.set. Many
widgets were handling smart show() and hide() manually, which
means this patch is quite large.
Hopefully this doesn't break anything, obviously. But here are
some widgets known to be problematic, as the old code flow was
really strange (sometimes not calling the efl_super function):
- window
- notify
Jean-Philippe Andre [Mon, 10 Oct 2016 07:44:48 +0000 (16:44 +0900)]
evas: Move clip_unset to legacy, remove group_clip
Similarly to group_color_set, group_clip_[un]set should not
exist and should be a result of efl_super and inheritance.
This patch also removes clip_unset from the EO API and keeps
only clip_set(NULL). The reason is that it will avoid bad overrides
of clip_unset() vs. clip_unset(NULL). This also simplifies the code
a bit. Ideally we should be able to reintroduce clip_unset in EO
if we can have a "@final" tag (like java's final keyword), to
prevent overrides.