Commit Graph

62107 Commits

Author SHA1 Message Date
junsu choi 1808b6c8a0 Ector.Renderer: Prevent too many unref.
Summary:
pd-> surface will try efl_xref whenever surface_set is called.
desturctor is called from a subclass, ref and unref do not match.
So, Add this condition temporarily.

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9235
2019-09-04 10:24:40 -04:00
Shinwoo Kim 52c34cd54d evas_render: add restacked mapped obj to redraws rect
Summary:
We are adding A object area to the redraws rect when object stack is changed
from (1) to (2) if A object is not mapped.

(1)
 ┌────────┐
 │Object A│┐
 └────────┘│
  └────────┘

(2)
 ┌────────┐
 │┌────────┐
 └│Object B│
  └────────┘

But if A object is mapped, then we are adding only part of A object area.

(part of A)
 ┌───────┐
 │┌──────┘
 └┘

So the result of stack change is (1) not (2).
This patch set is adding restacked mapped object to the restack_objects array,
after changing the stack of mapped object to add correct redraws rect.

Test Plan:
{F3727281}

{F3727280}

{F3727279}

(1) Build and Run attached example on software_x11 engine
(2) Mouse down on upper image - the image starts to use map.
(3) Then mouse up - upper image should go under the below image.
But, the changed result is NOT rendered.

Reviewers: Hermet, jsuya, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9183
2019-09-04 10:24:24 -04:00
Marcel Hollerbach 2c23300175 efl_ui_widget: optimize focus
this commit ensures 2 things:
1. This ensures that the parent is not evaluated when there was no state
changed, this cuts down roughly 30% of the calls to full_eval
2. This ensures that we only listen to parent manager changes when we
are actaully registered. This reduces the amount spend in event emission
a lot.
2019-09-04 10:22:20 -04:00
Marcel Hollerbach d5bfcd10ad efl_ui: include here efl_ui_item
Summary: this is actually a new class, it should be included here.

Reviewers: zmike, stefan_schmidt

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9200
2019-09-04 10:21:15 -04:00
Marcel Hollerbach 637d453eff evas_events: fix wrong event listening
EFL_EVENT_FOCUS_IN is wrong here, EFL_EVENT_FOCUS_IN is called on object
that received object focus. Not canvas focus, however, the code in the
callback there seems to be mainly for canvas focus handling.

Additionally, in evas_events, the event handler that was listening for
the canvas focus in / out events expected a event type, which is also
not correct, because the canvas focus in / out does not have one. In
order to catch such errors later more easily, there is now a safety
check, so we really fetched the correct seat.

Reviewed-by: YeongJong Lee <yj34.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9191
2019-09-04 10:20:58 -04:00
Mike Blumenkrantz a2f7f9a1b2 evas_events: implement POINTER_CANCEL event
it looks like this was left out during initial writing of eo-based eventing,
but based on the description, the intent was to have a separate cancel event
which was emitted just prior to the 'up' event using the existing state

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9184
2019-09-04 10:20:05 -04:00
Stefan Schmidt ac2a0fe313 ci: travis: update last jobs from Fedora 29 to 30 docker image
With the specsuite tests fixed now we can see that the build also works
with Fedora 30, so we can update the last missing jobs not having it.

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9193
2019-09-04 10:19:51 -04:00
Mike Blumenkrantz aa607bf47f tests: remove correct callback in slider event test
typo

Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9185
2019-09-04 10:19:02 -04:00
Hermet Park 9dabdf6b3a evas svg: fix missing node opacity attribute.
Any svg node could have its opacity value, we missed implementing it.

If a node have a opacity, it's opacity could be multiply with fill and stroke colors.

@fix
2019-09-04 10:18:52 -04:00
Christopher Michael 42ba2cae31 ecore-wl2: Add missing doxygen for ecore_wl2_window_resizing_get
function

ref T8014
2019-09-04 10:18:29 -04:00
Christopher Michael 74f42a45b8 ecore-wl2: Add missing @since for ecore_wl2_offer_mimes_get function
ref T8014
2019-09-04 10:18:26 -04:00
Hermet Park e3103ed796 efl_canvas_vg_container: remove unnecessary parent set.
the duplicated object must be set its parent by caller,
it shouldn't set it by itself internally.
2019-09-04 10:17:32 -04:00
Hermet Park d8d2e50c33 evas vector: set proper parents of clone objects.
fill, marker, stroke need proper parent when they were cloned.

Here, they would get the container of the shape which is going to be copied.

@fix
2019-09-04 10:17:27 -04:00
Ali Alzyod 0ff3e2202b evas_common: use memcpy to copy pixel buffer
Summary: This function has no special processing when copy data, so using memcpy can enhance performance

Test Plan:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

typedef unsigned int       DATA32;

static void
oldFunc(DATA32 *src, DATA32 *dst, size_t len)
{
   DATA32 *dst_end = dst + len;
   while (dst < dst_end)
      *dst++ = *src++;
}

static void
newFunc(DATA32 *src, DATA32 *dst, size_t len)
{
   memcpy(dst, src, len * sizeof(DATA32));
}

int main()
{

   int counter = 1000;
   srand(time(NULL));
   DATA32 src[50000] = {0};
   DATA32 dst[50000] = {0};

   for (int i = 0; i < 50000; i++)
      src[i] = rand();

   clock_t start, end;
   double total_Time1 = 0;
   int i;

   start = clock();
   for (i = 0; i < counter; i++)
      oldFunc(src, dst, 50000);
   end = clock();
   total_Time1 = ((double)(end - start)) / CLOCKS_PER_SEC;
   printf("original = %f \n", total_Time1);

   start = clock();
   for (i = 0; i < counter; i++)
      newFunc(src, dst, 50000);
   end = clock();
   total_Time1 = ((double)(end - start)) / CLOCKS_PER_SEC;
   printf("modified = %f \n", total_Time1);
}
```

Reviewers: raster, ManMower, woohyun, Hermet

Reviewed By: Hermet

Subscribers: Hermet, vtorri, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9155
2019-09-04 10:16:59 -04:00
Mike Blumenkrantz 9aca7a09ff tests/slider: verify emission of changed and delay,changed events
this simulates clicking and dragging a slider to avoid regressions with
these events

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9152
2019-09-04 10:16:48 -04:00
Mike Blumenkrantz 48d5256191 efl_ui_slider: remove setting pass_events on internal spacer in constructor
this object is swallowed into a layout, which means the layout will be managing
this property

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9151
2019-09-04 10:16:39 -04:00
Stefan Schmidt aa8d02a56f ci: travis: osx: switch to newer macos image and brew addon for packages
Summary:
One of the time consuming parts of the macos build we have is the
installing of the efl dependencies as packages from brew.
The brew update command alone is often taking 5m to run.

To avoid running brew update at all we are switching to a newer osx
image from Travis, which comes with a newer set of brew metadata and
gets us around a brew update for now. Together with this we are also
switching from our own dependency install script to the brew package
addon provided by travis already.

In my testing this shows we are only spending 270s in the brew package
updates comapred to 635s before. So we have a 6 minutes speedup for
every osx build!
Depends on D9161

Reviewers: zmike, bu5hm4n

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9162
2019-09-04 10:16:28 -04:00
Carsten Haitzler 5187f69c7a fix segv when adding optimizations to edje message handling
613e1715be (and friends) added a bit a
biug where messages in the queue were not skipped as they were before
causing a segv witha null lookup. this fixes that. eclipse about
dialog showed this bug up. no longer happens now.
2019-09-04 10:16:28 -04:00
Marcel Hollerbach cc860aecb4 evas: emit the corrent event here,
it seems we have done here something wrong, EFL_EVENT_FOCUS_IN is meant
to be emitted on objects that RECEIVE focus. This function here however
is called each time the window gets focus, which then might lead to a
object getting focus. However, those are two different things.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9137
2019-09-04 10:16:28 -04:00
Ali Alzyod eb4a833846 evas_textblock: more descriptive parameter names
Summary:
Use more descriptive parameter names.

l, r, t, b    it my confused with rgb  value or something similar.

Reviewers: segfaultxavi, woohyun, bowonryu

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9131
2019-09-04 10:16:28 -04:00
Carsten Haitzler 0b29b4c645 evas - events - protect on object deletion while calling callbacks
mouse in/out feeds can call callabcks that can then go delete objects
- ref them all to ensure they stay alive while we use them. this will
fix a segv apbbb saw.
2019-09-04 10:08:53 -04:00
Carsten Haitzler 730fd53e9e efl_wfl: fix warning and err prints for wl keymap tmp file 2019-09-04 10:08:47 -04:00
Carsten Haitzler b712b197f9 ecore - efl thread - handle write call mishaps and complain
fixes warnings too.
2019-09-04 10:08:36 -04:00
junsu choi 36fa75ef73 ector: Fix precomp layer rendering issue when it has alpha value
Summary:
When the precomp layer(parent layer) has alpha transparency and has more than 1 child layer
and they overlap each other if vg object just propagate the alpha to child layer
it will be applied twice in overlapped area.
Even if the child layer does not have alpha transparency, parent alpha is applied to each child.

Test Plan: N/A

Reviewers: Hermet, smohanty

Reviewed By: Hermet

Subscribers: cedric, #reviewers, kimcinoo, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9072
2019-09-04 10:08:12 -04:00
Vincent Torri ed79eb0962 Ecore net dialer Windows example: fix undeclared symbols
Summary:
missing symbols :

efl_net_dialer_address_dial_get
efl_net_socket_address_remote_get
efl_net_socket_address_local_get
EFL_NET_DIALER_EVENT_DIALER_CONNECTED
EFL_NET_DIALER_EVENT_DIALER_RESOLVED
EFL_NET_DIALER_EVENT_DIALER_ERROR
EFL_NET_DIALER_WINDOWS_CLASS

Test Plan: compilation

Reviewers: zmike, raster, cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9106
2019-09-04 10:06:27 -04:00
Carsten Haitzler 6702734fd5 example - use LC_ALL not LC_MESSAGES for windows examples to build
so they don't need evil anymore. should help vtorri + windows
port/support.
2019-09-04 10:05:32 -04:00
junsu choi da61c9c5f2 efl_canvas_vg_container: Initialize alpha color
Summary:
The vg object (container, shape, ...) follows color of VG node data.
The color of node data is not initialized. it can set the required color for each object.
vg container should be layer with an alpha value of 255.

Test Plan: N/A

Reviewers: Hermet, smohanty

Reviewed By: Hermet

Subscribers: cedric, #reviewers, kimcinoo, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9083
2019-09-04 10:04:38 -04:00
Stefan Schmidt 3fb2661068 ci: travis: switch to newer distro releases
Summary:
We follow Debian 9.9, Ubuntu 19.04 and Fedora 30 releases.
Also adding a build for Ubuntu 18.04 LTS to the cron job.

Not all jobs are updated yet as some experience failures
(old or new versions) which need to be understand and fixed
before we move on.

Reviewers: zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9088
2019-09-04 10:04:33 -04:00
Xavi Artigas aa6e188f10 docfx: Only add media files in use to the final docs
The setup script copied ALL media files, but only the C# tutorials and guides.
A lot of space can be saved in the generated _site folder if only the media
files relevant to C# are copied.
2019-09-04 10:04:10 -04:00
Christopher Michael c26e10a035 ecore-wl2: Add doxygen for ecore_wl2_input_seat_get
ref T8014
2019-09-04 10:03:42 -04:00
Christopher Michael 8d36558e0c ecore-wl2: Add missing doxygen for ecore_wl2_window_display_get
ref T8014
2019-09-04 10:03:40 -04:00
Jongmin Lee a0b0c6c2b3 elm/interface_scrollable: check parameters before using them
Summary: it crashes when calling elm_interface_scrollable_loop_get() function with NULL parameters.

Test Plan: call elm_interface_scrollable_loop_get() function with NULL parameters.

Reviewers: Hermet, woohyun, kimcinoo, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9082
2019-09-04 10:03:33 -04:00
Mike Blumenkrantz c4dd3ec04d efl-wl: add missing docs for efl_wl_global_add()
Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8900
2019-09-04 10:02:59 -04:00
Mike Blumenkrantz d069a41434 theme: fix fileselector search button layout
Summary:
to correctly (and quickly) calculate part geometry when setting a part relative
to another part, align must be set on the axis that is relative to another part.
also since the height on this part should not be changing, set fixed on the
vertical axis to optimize geometry calcs

@fix

Depends on D9009

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9010
2019-09-04 10:02:48 -04:00
Carsten Haitzler 3539dc6540 elm sel mgr - remove event handlers when no drop targets are left
case left over that this didnt handle right and this breaks e's dnd
once a file preview popup appears.

@fix
2019-08-30 18:19:02 +01:00
Carsten Haitzler 0badbe5eac eio - don't call cb's after a cancel
i saw a segv in e/efm .. an eio call was called after it had been
canceled. this should never happen. ever. so ensure it does not once
an eio file has been canceled.

@fix
2019-08-30 12:45:11 +01:00
Carsten Haitzler 998e644977 evas -gl engines - buffer age - bring back fix for changing buffer age
so we USED to... if buffer age changed between frames, force a full
redraw and add that to the pipeline... somehow someone removed that.
this brings that back as it's really needed to deal with updating
correctly.

@fix
2019-08-27 23:06:47 +01:00
Carsten Haitzler 542b17f958 meson build - bump to 1.22.3 to match autofoo just for sanity 2019-08-26 20:57:59 +01:00
Carsten Haitzler d866945a34 stable - fix meson build to have svg loader work
just for some sanity of testing stable branch and backports... have
meson work better. installs svg loader so it works.
2019-08-26 20:57:22 +01:00
Carsten Haitzler 52fb1c8d43 edje - backport fix to opt that actually was a fix to existing bug
so it turns out a fix to an optimization i did was ALSO a fix to an
existing bug that just didn't turn up as much until i added an
optimization. this is that fix backported manually

@fix
2019-08-26 20:55:07 +01:00
Carsten Haitzler de3f8f330f edje signal matches - try number 3 to try plug all the holes
i found some more cases where the hash may change, so del and add from
the hash when this happens...

and... i found a nasty. _edje_signal_match_key_cmp compared pointers
like:

int return = ptr_a - ptr_b;

what happens if .... ptr_a and ptr_b are more than 2^31 (2gb) apart?
overflow (or underflow) and we return the wrong thing. i suspect this
is part of the problem and why my has remove/adds have not been
working because ... i suspect that maybe the hash dels have not been
finding things. i can't be sure right now, but it is an obvious
problem that i fixed by just doing if's and returning -1 or 1. also i
found a double-add or overwrite int he hash - when we shuffled with
_edje_signal_callback_move_last the matches CAN match exactly
something already in the hash thus adding it in will conflict with
what is already there as keys match. handle this cvase now and i have
seen segv's go away for now.

@fix
2019-08-23 19:37:42 +01:00
Carsten Haitzler d4a24546b0 edje signal - let's not crash if something odd happens
better we dont just crash but err log it which can be set to abort
anyway.

@fix
2019-08-23 19:37:42 +01:00
Mike Blumenkrantz 99effcc554 release: Update NEWS and bump version for 1.22.3 release 2019-08-23 11:49:16 -04:00
Cedric BAIL 6ef3e8ed00 ecore: do not rely on implicit rules for memory lifecycle during test.
Summary:
alloca force the memory to be accessible for the entire duration of the
scope of the function it is called from. This will garantee that the
memory pointer are not recycled under our feet before we check them.

T8020

Reviewers: zmike

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8020

Differential Revision: https://phab.enlightenment.org/D9127
2019-08-23 11:48:27 -04:00
Carsten Haitzler c57b5e2d7b emotion - webcam fix deletion of webcam still left in webcam list
we may destroy webcams but leave them in the list. this fixes that by
removing them from our global list when we do unref to 0.

@fix
2019-08-22 19:56:33 +01:00
Carsten Haitzler c348e7779c edje - signal callback matches/patterns try fix number 2
so i think there was also another bug as i saw this again now. this
should hopefully plug the signal/mtach memory bugs now by removing
and adding back to hash as the hash key relies on the memory addresses
of signal/src in the matches array which change on realloc. a bit
brute-forceey but... better than crashes.

@fix
2019-08-22 19:56:16 +01:00
Carsten Haitzler 0d27de4022 edje signal matches/patterns - handle re/alloc errors and missing ptrs
also a general cleanup of the code to make it easier to follow/read as
this seems to have problems but i cant reproduce them enough to find
them. i noted a realloc would have invalidated pre-stored pattern
ptrs that would cause segv's for sure. also code paths where reallocs may
fail and not handling those cases at all etc.

@fix
2019-08-22 19:56:00 +01:00
Carsten Haitzler 7ea776af20 eina file refs in edje/evas - audit them and plug holes where refs stay
in 1 situation at least we delete the eina file (close it) but keep
the ptr around (during destruction) which could cause issues with
callbaks and events on del and so on.... which may lead to multiple
closes where only one should happen ... which would explain my invalid
eina file ref problems i'm seeing. i carefully matched eina file
handle stores/opens/dups to closes in edje/evas and they seemed to all
match up so this audit with comments and fixes seems to have plugged
that now.

@fix
2019-08-21 19:57:43 +01:00
Carsten Haitzler 4b6fe57ade evas - font rendering - dont crash if we have color fonts and gl and sw
so if you use sw and gl enignes in a process and have color font
glyphs.. *BOOM* because the color glyph code used ext dat that was
intended for engines to extend with a gotcha of "only 1 engine can
extend this"... commented already.

so this unfortunately adds an extra ptr per glyph to store color data
explicitly. but now it both renders right and doesn't crash. we still
have a limit of 1 engine alone can extend glyphs with ext_dat though.

@fix
2019-08-21 19:51:10 +01:00
Carsten Haitzler fa40e25a02 elm theme - handle error cases and eina file handles properly
@fix
2019-08-21 19:51:02 +01:00