Commit Graph

3749 Commits

Author SHA1 Message Date
Marcel Hollerbach 7288e98b9e ecore_evas_x: allow parsing of links form the link list
Summary:
this is needed in order to return the data the same way the legacy impl
did. This however has the annoying sideeffect that ecore_evas_x now
depends on efreet, and we had to change the build order.
Depends on D11696

Reviewers: zmike, stefan_schmidt, raster

Reviewed By: zmike

Subscribers: devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11697
2020-04-14 11:29:32 -04:00
Carsten Haitzler dcfb8bb580 ecore-evas - x dnd/cnp - handle null data content and not segv 2020-04-12 13:26:46 +01:00
Shinwoo Kim 90cc0c465c evas: fix dereference after null check
Summary:
Static analysis tool reports passing a null pointer 'im->gc' to
_evas_gl_image_cache_add which directly dereferences it, so lets
be sure that 'im->gc' is valid before passing it to cache_add

Reviewers: Hermet, jsuya, herb, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11676
2020-04-10 08:45:22 -04:00
Marcel Hollerbach a4ef152361 ecore_evas_cocoa: be aware of NULL data
this will now result in the promise beeing rejected.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11653
2020-04-07 10:58:27 +02:00
Marcel Hollerbach 522ff0eaef meson: do no build upower on macos
this is just causing errors and nothing usefull, upower is not available
on macos.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11652
2020-04-07 10:58:24 +02:00
Marcel Hollerbach 44a33c2dad meson: support unified suffixes for modules
A long story in a few words: sometimes on macos modules will be compiled
into .dylib, sometimes, into .so suffix. We did not set the suffix
everywhere in our meson build instructions, hence our suffixes have been
differently, which resulted in random load fails on different maschines.

With this commit, we ensure that we suffix all modules the same way.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11650
2020-04-07 10:58:17 +02:00
Marcel Hollerbach 13d52be7e6 ecore_evas: fix leaks in macos and win32
memory is duplicated in eina_content_new.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11641
2020-04-06 09:05:05 +02:00
Marcel Hollerbach 11da918983 Replace strncmp code
the structure "!strcmp(X, "foo", strlen("foo"))" is equal to
"eina_has_prefix(X, "foo")", and the later is nicer to read, hence this
replaces it.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11620
2020-04-03 14:51:11 +02:00
Mike Blumenkrantz 00a93423a6 ecore-evas/cocoa: fix cnp leak
this pointer needs to be freed if it's being copied

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11604
2020-04-03 14:39:57 +02:00
Christopher Michael 9fbe26998b ecore_evas_wayland: Do not pass negative parameter to close function
Coverity reports that 'fd' here is negative, and close() cannot accept
a negative parameter, so add a check to make sure 'fd' is not negative
before passing to close function.

Fixes CID1420318
2020-03-30 14:34:41 -04:00
Christopher Michael dc7283eb14 ecore_evas_wayland: Declare variables at top of function 2020-03-30 14:33:23 -04:00
Vincent Torri e0f5e80f78 fix segfault when there is no text in clipboard
Test Plan: cnp a clipboard content without text

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11565
2020-03-26 10:47:34 -04:00
Hermet Park 476e2b0521 canvas 3d: remove all canvas3d features across efl.
Reviewers: jsuya, kimcinoo, bu5hm4n, raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11552
2020-03-25 19:14:02 +09:00
Carsten Haitzler e1e7272d89 ecore evas cnp x - fix nul byte extras when text pasting to other apps
i was seeing junk bytes in pastes to chromium... it was an extra nul
byte. this will special-case nuke that.
2020-03-22 18:39:54 +00:00
Carsten Haitzler 60f8495d80 ecore evas x - on argb dont create unused 1 bit pixmap masks
found out we had a wasted 1 bit pixmap mask for argb windows left over
from shaped window support... so don't create it. drop resources a bit.

@fix
2020-03-17 09:50:49 +00:00
Shinwoo Kim a89a2ef1de evas.image: add evas_object_image_animated_frame_get
this adds an api for getting the current frame of an animation

Differential Revision: https://phab.enlightenment.org/D11455
2020-03-10 13:31:19 -04:00
Christopher Michael 8009817d07 ecore-evas-wayland: Check for valid 'fd' before passing to write()
write() cannot be passed a negative value. If
ecore_main_fd_handler_fd_get returns -1, then this is an issue. Check
for valid fd being returned from fd_handler_fd_get and if it is
negative, then cleanup and get out.

Fixes CID1420318
2020-03-10 10:31:46 -04:00
Christopher Michael be87c4a0c2 ecore-evas-wayland: Fix resource leak
If we are going to be exiting this function without setting up the
ecore_main_fd_handler (and thus passing forign_slice), then we should
free forign_slice as it was previously calloc'd above.

Fixes CID1420322
2020-03-10 10:28:01 -04:00
Ali Alzyod 794792aacb evas_gl_font: free data paths if alloca fails
Reviewers: Hermet, woohyun, bu5hm4n, zmike

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11473
2020-03-10 11:42:31 +09:00
Marcel Hollerbach b97c051e6f ecore_evas_x: fix memory leak when enter drag and drop, without a ee
this is something that can *never* happen otherwise we would have never
got this call. But lets make coverity happy.
2020-03-09 17:10:40 +01:00
Marcel Hollerbach 6524b0a155 ecore_evas_x: correctly handle images in X11
I thought that i explicitly tested this. However, it seems i was wrong,
this way now this is handled correctly, and the image is stored and
coverted to a path.

With this you can now copy images from chromium and firefox to elm apps.

The change in elm_entry reverts parts of the rewrite of the elm
handling, as initially every path came *without* "file://" in front, so
we have to maintain that.

fixes T8625
2020-03-09 17:10:39 +01:00
Carsten Haitzler 075bab83c4 remove vlc, gst-0.10, xine deps, modules as they are broken
they dont work. easier to remove than fix, so... remove :) only gst
1.x supported now.
2020-03-08 12:36:01 +00:00
Marcel Hollerbach 0dcbc26a5a ecore_evas_x: honor forign dnd implementations
enlightenment does not use the elm dnd operation implementations.
Therefore we have to ensure that we only handle these operations here,
when ecore_evas dnd API is used.
2020-03-08 12:29:41 +01:00
Hermet Park b2bd0c548f evas gl: clip rect with proper size.
gc width/height indicates the main output size,
if the target surface(fbo) is larger than this, rect won't be drawn.

We should clip this with current context size.

@fix
2020-03-08 20:20:43 +09:00
Xavi Artigas 7a79e15ea3 ecore_evas: Use EFL naming convention in cnp & dnd methods
Some methods were missing the "Drag" or "Selection" namespaces or the _Cb suffix.
Depends on D11219

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11426
2020-03-08 11:01:24 +01:00
Xavi Artigas 645c3d41eb docs: Strengthen docs for Copy&Paste and Drag&Drop
Including Eina.Content

And a typo/bugfix in ecore_evas_x.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11204
2020-03-08 11:01:18 +01:00
Marcel Hollerbach 7dd92a2d98 port cnp on Windows
Test Plan: Ctrl-c and Ctrl-Vworking

Reviewers: raster, zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11439
2020-03-08 11:01:15 +01:00
Marcel Hollerbach c731cf56d5 ecore_evas: Introduce cnp support for cocoa
with this commit you can do limited cnp for cocoa. You still cannot copy
and paste pictures or markup arround, only text is supported so far.
However, text on its own works quite stable and good.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11351
2020-03-08 10:59:46 +01:00
Marcel Hollerbach 5ac02ec9ac ecore_evas: introduce wayland support for cnp & dnd
This adds cnp support, actions are right now only mapped to "ask",
further support can be added there, and synchronization can be added to
register more available actions. However, i did not find *any* wayland
implementation in gtk qt nor chromiumos that even use the action to
indicate anything. This here also has a slightly different behaviour to
X11 in terms of coordinates for motion,leave,enter. They can contain
negative coordinates (which is due to the fact that wl is CSD and X11 is
SSD. However, I did not want to fix this in any regard, as you might
want to use that, and it would be a none trivial amount of code to fix
that.

Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11329
2020-03-08 10:59:37 +01:00
Marcel Hollerbach e0c40abb40 ecore_evas: introduce initial selection & dnd support for x.
Seats are not implemented, if there is a type mismatch promises are
going to be rejected. Most of this code is copied over from
selection_manager.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11195
2020-03-08 10:59:34 +01:00
Marcel Hollerbach 39f3ce42dc ecore_evas: Introduce cnp / dnd API for ecore evas
The idea of copy and paste here is:
- The user specifies the content he wants to have in the selection
  buffer with a Eina_Content, these content pointer ownerships are
  passed to the called. Internally ecore_evas code will memorieze the
  pointer, and pass on function callbacks to the modules, which then do
  not have to deal with the ownership.

- In case the module does not specify these APIs, the callback
  implementation will be called, which only works for cnp *not* dnd.

- Action and mime types are handled as strings, which allows way better
  custom organisations.

(The docs needs improvement)

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11192
2020-03-08 10:59:25 +01:00
Christopher Michael 0bf6f5bbe4 evas_gl_drm: Fix incorrect define statement.
This actually should be #ifndef so that if it's not defined in the
system, then we can still compile properly.
2020-03-06 11:46:33 -05:00
junsu choi 62039e6199 evas_model_load_ply: Prevent memory leak
Summary:
If use ein_str_split, have to free the first element of the array
and free the array.

Test Plan: N/A

Reviewers: Hermet, YOhoho, bu5hm4n, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11419
2020-02-27 09:55:37 +09:00
Stefan Schmidt 8ff8aa3076 evas: software_engine: free allocation on error path
When we allocated s but fail to allocate l we need to make sure to free
the first allocation before erroring out.

CID: 1419874

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11409
2020-02-25 16:43:25 +01:00
Mike Blumenkrantz dc14257c96 Revert "evas: remove image_load from the engine."
Summary:
This reverts commit 867d826395.
Depends on D11337

Reviewers: raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11338
2020-02-14 08:33:32 -05:00
Mike Blumenkrantz be3915cc90 Revert "evas: remove unused fonction evas_gl_common_image_load."
Summary:
This reverts commit fc7e244e99.
Depends on D11336

Reviewers: raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11337
2020-02-14 08:33:26 -05:00
Marcel Hollerbach 0c77cee3ab evas_model_loader: fix 8f3bef248b
The commit fixed a mem leak with freeing one element in the array, which
was never going to work, as only the array is a pointer you can
allocate.

This could have been discovered by simply running ninja test.
2020-02-14 09:01:10 +01:00
Hermet Park 8f3bef248b canvas model_loaders: fix memory leak in ply loader.
eina_str_split() newly allocate memory to return,
caller must take over its resource free..
2020-02-14 13:51:46 +09:00
Hermet Park 570a4c94ad image loaders pmaps: decide data size at the compile time. 2020-02-14 13:42:43 +09:00
Hermet Park 63d1b32e62 canvas engine: + null check for safety 2020-02-14 13:39:17 +09:00
Hermet Park e64f45a889 gl image: free the resource properly at the corner case. 2020-02-14 13:27:11 +09:00
junsu choi fcdf523b98 software_evas_engine: Remove unnecessary member for ector_surface_set
Summary:
The clear of the Evas_Thread_Command_Ector_Surface structure is an unmanaged variable.
When ector calls _draw_thread_ector_surface_set and it checks the clear value.
the clear value is garbage value. This can cause the pixels to fail to initialize.
This is why afterimages remain after updating shapes while using ector surfaces.

Test Plan:
./build/src/examples/evas/efl-canvas-vg-simple
1 - Basic Shape test
Scale up 's' or do something

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11278
2020-02-05 10:47:15 +09:00
Shinwoo Kim e0b4ddaeb8 evas filter: fix crash issue
Summary:
If image object geometry is same with image size, then a crash occurs on both
GL and SW engine.

[Test Code]
evas_object_image_size_get(img, &w, &h);
evas_object_resize(img, w, h);

[GL engine]
eng_ector_buffer_wrap should use output instead of engine for calling
evas_ector_buffer_engine_image, because it expects the output not the engine.

[SW engine]
eng_ector_buffer_wrap should check if im->image.data is NULL because
_evas_ector_software_buffer_evas_ector_buffer_engine_image_set returns before
calling evas_cache_iamge_ref if im->image.data is NULL, and it causes
a segmentation fault finally with following backtrace.

(#0) evas_cache_image_drop (im=0x0)
(#1) _evas_ector_software_buffer_efl_object_destructor
(#2) efl_destructor
(#3) _efl_del_internal
(#4) _efl_unref_internal
(#5) _efl_add_internal_end
(#6) _efl_add_end
(#7) eng_ector_buffer_wrap

Test Plan: {F3841366}

Reviewers: Hermet, jsuya

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11258
2020-01-31 21:35:18 +09:00
Shinwoo Kim 1dc6ccfba0 Efl.Canvas.Group: make mask filter work on GL engine
Summary:
The _gl_filter_mask defines value of gc->dc->clip.mask, and make_color but
those are not used at all, because the evas_gl_common_Filter_blend_push calls
evas_gl_common_context_image_push which doesn't care of those values.

So this patch is using evas_gl_common_image_draw to use mask and mask_color.

Test Plan:
[Filter Program]
efl_gfx_filter_program_set(text,
     "buffer:a(alpha); buffer:fat(alpha); buffer:rgbfat(rgba);
      curve (0:255-255:0, dst = a); blend (a, color = #00ca00ff);
      grow (1, dst = fat); blur (3, src = fat, color=#0000b9ff, ox = -2, oy = -2, dst = rgbfat);
      mask (a, src = rgbfat);padding_set(t=5);",
     "name");

[Before]
{F3835430}

[After]
{F3835431}

Reviewers: Hermet, jsuya

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11139
2020-01-31 18:31:31 +09:00
Carsten Haitzler de4a698c96 elm win + ecore evas - fix csd stuff like base size and min sizing
this fixes a lot that was broken with csd... but not everything.

@fix
2020-01-18 00:14:58 +00:00
Hermet Park f6f67d60f3 evas ector: ++safety.
add return value by ector_begin() for vector safety.
2020-01-09 15:01:47 +09:00
Carsten Haitzler e18af750f3 gl native surf - create pixmap failes - make them warns
these can be race conditions so really should be warns and not errors.
they just are noise we'll never fix as it's racey anyway...
2020-01-03 18:22:28 +00:00
Boris Faure a2afcfc872 evas: fix compilation with -Dwl=false
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10994
2020-01-02 12:41:16 +01:00
Hermet Park 745eea61b0 evas gl: enable GL_LINE_SMOOTH only at gles 1.x
As the GLES specification,
GL_LINE_SMOOTH is not supported since GLES2.
2019-12-31 16:31:09 +09:00
Stefan Schmidt 0f52bbb00e ecore_evas: add double header include safety
Reported-By: https://lgtm.com/projects/g/Enlightenment/efl
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10887
2019-12-17 09:59:44 +01:00