Ali Alzyod [Thu, 16 Jul 2020 08:58:45 +0000 (09:58 +0100)]
edje_cc : resolve build warning
Reviewers: raster
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12054
Stefan Schmidt [Thu, 16 Jul 2020 08:59:22 +0000 (10:59 +0200)]
elm: tests: fix typo in test name
Found while working on exactness scenarios. Better get this fixed here
before we use it in tools like exactness and make it harder to change.
Stefan Schmidt [Thu, 16 Jul 2020 08:04:49 +0000 (10:04 +0200)]
ci: travis: force meson version 0.54.3 as install for codecov
The newest meson 0.55 release is broken for a coverage build. (Version
0.55.1 should get the needed fix from this pull rewuest: https://github.com/mesonbuild/meson/pull/7411)
For now we force 0.54.3 as known working version.
Changyeon Lee [Tue, 7 Jul 2020 09:36:18 +0000 (18:36 +0900)]
ecore_wl2: support tizen_renderer protocol
Some target can display only specific buffer at hardware layer.
enlightenment sends buffer to render engine (egl or software engine)
of client when enlightenment wants to display at hardware layer and
enlightenment wait that client attach buffer by render engine.
but if client doesn't have change of rendering after buffer is sent,
render engine doesn't render at buffer.
tizen_renderer protocol and redraw_request event were added.
enlightenment sends redraw_request event after buffer is sent and
wants client redraws at wl_surface.
1. add event ECORE_WL2_EVENT_WINDOW_REDRAW_REQUEST and
Ecore_Wl2_Event_Window_Redraw_Request
2. add damage to ecore_evas in callback of redraw request
Change-Id: I951b458c10d8163cc37583ededcabd4cd807531e
Jongmin Lee [Wed, 15 Jul 2020 22:29:45 +0000 (07:29 +0900)]
spec: disable avif evas image loader
Change-Id: I8d0450b3cd3a9c3a4dd1539ec03202c9f8ede4c2
Daniel Kolesa [Wed, 15 Jul 2020 18:07:46 +0000 (20:07 +0200)]
meson: allow empty values in disabler/bindings array
This is supposed to simplify things for distro packagers and is
inspired by other projects doing this, e.g. Mesa.
The idea here is that the provided lists can now begin with a comma,
unlike before. This allows for things such as:
evas_disablers=""
if [ -z "$build_option_lottie" ]; then
evas_disablers+=",json"
fi
if [ -z "$build_option_avif" ]; then
evas_disablers+=",avif"
fi
...
configure_args+=" -Devas-loaders-disabler=$evas_disablers"
Previously this would fail because meson would interpret the
comma at the beginning as having an empty-string value in the
array, and checking whether the string is already empty is too
clunky.
Carsten Haitzler (Rasterman) [Wed, 15 Jul 2020 18:16:57 +0000 (19:16 +0100)]
Revert "Revert "ci: travis: make sure we disable avif loader by default in our jobs""
This reverts commit
42e3411ed7dacc652bd1c64d94941d7ac6aa67c4.
Vincent Torri [Wed, 15 Jul 2020 17:51:27 +0000 (18:51 +0100)]
Evas: add avif evas loader and saver
Summary:
Add AV1 image file loader and saver to Evas
The loader can be tested with this code :
```
#include <stdlib.h>
#include <stdio.h>
#include <Eina.h>
#include <Ecore.h>
#include <Evas.h>
#include <Ecore_Evas.h>
static int i = 0;
static unsigned char _timer(void *data)
{
Evas_Object *o = (Evas_Object *)data;
if (i < evas_object_image_animated_frame_count_get(o))
{
evas_object_image_animated_frame_set(o, i);
i++;
return ECORE_CALLBACK_RENEW;
}
return ECORE_CALLBACK_DONE;
}
static void _quit(Ecore_Evas *ee)
{
ecore_main_loop_quit();
(void)ee;
}
int main(int argc, char *argv[])
{
Ecore_Evas *ee;
Evas *evas;
Evas_Object *o;
int w,h;
Evas_Load_Error err;
if (argc < 2)
{
printf("usage : %s file\n", argv[0]);
return 1;
}
ecore_evas_init();
ee = ecore_evas_new(NULL, 0, 0, 1, 1, NULL);
if (!ee)
{
printf("no ee\n");
return 0;
}
evas = ecore_evas_get(ee);
ecore_evas_title_set(ee, "avif test");
ecore_evas_callback_delete_request_set(ee, _quit);
o = evas_object_image_add(evas);
evas_object_image_file_set(o, argv[1], NULL);
err = evas_object_image_load_error_get(o);
if (err != EVAS_LOAD_ERROR_NONE)
{
fprintf(stderr, "could not load image '%s'. error string is \"%s\"\n",
argv[1], evas_load_error_str(err));
return 1;
}
evas_object_image_size_get(o, &w, &h);
evas_object_image_fill_set(o, 0, 0, w, h);
evas_object_move(o, 0, 0);
evas_object_resize(o, w, h);
evas_object_show(o);
printf("animated : %s\n", evas_object_image_animated_get(o) ? "yes" : "no");
fflush(stdout);
if (evas_object_image_animated_get(o))
{
Ecore_Timer *timer;
printf("frame count : %d\n", evas_object_image_animated_frame_count_get(o));
printf("duration : %f\n", evas_object_image_animated_frame_duration_get(o,1,0));
printf("loop count : %d\n", evas_object_image_animated_loop_count_get(o));
fflush(stdout);
timer = ecore_timer_add(evas_object_image_animated_frame_duration_get(o,1,0), _timer, o);
}
ecore_evas_resize(ee, w, h);
ecore_evas_show(ee);
ecore_main_loop_begin();
ecore_evas_shutdown();
return 0;
}
```
non animated files : https://github.com/AOMediaCodec/libavif/tree/master/tests/data/originals
animated files : https://github.com/AOMediaCodec/av1-avif/tree/master/testFiles/Netflix/avifs
to test the saver :
```
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <Eina.h>
#include <Ecore.h>
#include <Evas.h>
#include <Ecore_Evas.h>
void _quit(Ecore_Evas *ee)
{
ecore_main_loop_quit();
(void)ee;
}
static Evas_Object *
display_data(int w, int h, const char *title, unsigned int *data)
{
Ecore_Evas *ee;
Evas *evas;
Evas_Object *o;
unsigned int *d;
ee = ecore_evas_new(NULL, 0, 0, w, h, NULL);
if (!ee)
return NULL;
evas = ecore_evas_get(ee);
ecore_evas_title_set(ee, title);
ecore_evas_callback_delete_request_set(ee, _quit);
o = evas_object_image_add(evas);
evas_object_image_fill_set(o, 0, 0, w, h);
evas_object_image_size_set(o, w, h);
d = evas_object_image_data_get(o, 1);
for (int i = 0; i < w*h; i++)
d[i] = data[i];
evas_object_image_data_set(o, d);
evas_object_image_data_update_add(o, 0, 0, w, h);
evas_object_move(o, 0, 0);
evas_object_resize(o, w, h);
evas_object_show(o);
ecore_evas_show(ee);
return o;
}
static unsigned int *
display_file(const char *title, const char *filename, int *w, int *h)
{
Ecore_Evas *ee;
Evas *evas;
Evas_Object *o;
Evas_Load_Error err;
unsigned int *data;
ee = ecore_evas_new(NULL, 0, 0, 1, 1, NULL);
if (!ee)
return NULL;
evas = ecore_evas_get(ee);
ecore_evas_title_set(ee, title);
ecore_evas_callback_delete_request_set(ee, _quit);
o = evas_object_image_add(evas);
evas_object_image_file_set(o, filename, NULL);
err = evas_object_image_load_error_get(o);
if (err != EVAS_LOAD_ERROR_NONE)
{
fprintf(stderr, "could not load image '%s'. error string is \"%s\"\n",
filename, evas_load_error_str(err));
fflush(stderr);
return NULL;
}
evas_object_image_size_get(o, w, h);
evas_object_image_fill_set(o, 0, 0, *w, *h);
evas_object_image_size_set(o, *w, *h);
evas_object_move(o, 0, 0);
evas_object_resize(o, *w, *h);
evas_object_show(o);
ecore_evas_resize(ee, *w, *h);
ecore_evas_show(ee);
data = evas_object_image_data_get(o, 1);
return data;
}
double psnr(int w, int h, unsigned int *data_orig, unsigned int *data)
{
unsigned char *iter_orig;
unsigned char *iter;
double psnr;
psnr = 0.0;
iter_orig = (unsigned char *)data_orig;
iter = (unsigned char *)data;
for (int i = 0; i < 4 * w * h; i++, iter_orig++, iter++)
psnr += (*iter_orig - *iter) * (*iter_orig - *iter);
psnr /= 4 * w * h;
psnr = 10 * log10(255.0 * 255.0 / psnr);
return psnr;
}
void compare(int quality, int w, int h, unsigned int *data_orig)
{
char title[1024];
char filename[1024];
unsigned char *data;
unsigned int *data_jpeg;
unsigned int *data_avif;
unsigned char *iter_orig;
unsigned char *iter_jpeg;
unsigned char *iter_avif;
double psnr_jpeg;
double psnr_avif;
Eina_File *f_jpeg;
Eina_File *f_avif;
size_t size_jpeg;
size_t size_avif;
/* jpeg */
snprintf(title, sizeof(title), "jpeg test quality %d", quality);
snprintf(filename, sizeof(filename), "test_%d.jpg", quality);
data_jpeg = display_file(title, filename, &w, &h);
if (!data_jpeg)
return;
f_jpeg = eina_file_open(filename, EINA_FALSE);
size_jpeg = eina_file_size_get(f_jpeg);
eina_file_close(f_jpeg);
fprintf(stderr, "size : %u\n", (unsigned int)size_jpeg);
fflush(stderr);
/* avif */
snprintf(title, sizeof(title), "avif test quality %d", quality);
snprintf(filename, sizeof(filename), "test_%d.avif", quality);
data_avif = display_file(title, filename, &w, &h);
if (!data_avif)
return;
f_avif = eina_file_open(filename, EINA_FALSE);
size_avif = eina_file_size_get(f_avif);
eina_file_close(f_avif);
fprintf(stderr, "size : %u\n", (unsigned int)size_avif);
fflush(stderr);
psnr_jpeg = psnr(w, h, data_orig, data_jpeg);
fprintf(stderr, "psnr jpeg : %f\n", psnr_jpeg);
fflush(stderr);
snprintf(title, sizeof(title), "jpeg vs orig (psnr: %.2f, size: %u b)", psnr_jpeg, (unsigned int)size_jpeg);
iter_orig = (unsigned char *)data_orig;
iter_jpeg = (unsigned char *)data_jpeg;
data = malloc(4*w*h);
for (int i = 0; i < 4*w*h; i++, iter_orig++, iter_jpeg++)
data[i] = abs(*iter_jpeg - *iter_orig);
display_data(w, h, title, (unsigned int *)data);
psnr_avif = psnr(w, h, data_orig, data_avif);
fprintf(stderr, "psnr avif : %f\n", psnr_avif);
fflush(stderr);
snprintf(title, sizeof(title), "avif vs orig (psnr: %.2f, size: %u b)", psnr_avif, (unsigned int)size_avif);
iter_orig = (unsigned char *)data_orig;
iter_avif = (unsigned char *)data_avif;
data = malloc(4*w*h);
for (int i = 0; i < 4*w*h; i++, iter_orig++, iter_avif++)
data[i] = abs(*iter_avif - *iter_orig);
display_data(w, h, title, (unsigned int *)data);
}
int main()
{
Ecore_Evas *ee;
Evas *evas;
Evas_Object *o;
Evas_Load_Error err;
unsigned int *data;
int w,h;
ecore_evas_init();
ee = ecore_evas_new(NULL, 0, 0, 1, 1, NULL);
if (!ee)
return 1;
evas = ecore_evas_get(ee);
ecore_evas_title_set(ee, "original");
ecore_evas_callback_delete_request_set(ee, _quit);
o = evas_object_image_add(evas);
evas_object_image_file_set(o, "x1d-II-sample-02.fff", NULL);
err = evas_object_image_load_error_get(o);
if (err != EVAS_LOAD_ERROR_NONE)
{
fprintf(stderr, "could not load image '%s'. error string is \"%s\"\n",
"x1d-II-sample-02.fff", evas_load_error_str(err));
fflush(stderr);
return 1;
}
evas_object_image_size_get(o, &w, &h);
evas_object_image_fill_set(o, 0, 0, w, h);
evas_object_image_size_set(o, w, h);
evas_object_move(o, 0, 0);
evas_object_resize(o, w, h);
evas_object_show(o);
data = evas_object_image_data_get(o, 1);
ecore_evas_resize(ee, w, h);
ecore_evas_show(ee);
/* evas_object_image_save(o, "test_100.jpg", NULL, "quality=100"); */
evas_object_image_save(o, "test_90.jpg", NULL, "quality=90");
/* evas_object_image_save(o, "test_70.jpg", NULL, "quality=70"); */
/* evas_object_image_save(o, "test_50.jpg", NULL, "quality=50"); */
/* evas_object_image_save(o, "test_100.avif", NULL, "quality=100"); */
evas_object_image_save(o, "test_90.avif", NULL, "quality=90");
/* evas_object_image_save(o, "test_70.avif", NULL, "quality=70"); */
/* evas_object_image_save(o, "test_50.avif", NULL, "quality=50"); */
compare(90, w, h, data);
ecore_main_loop_begin();
ecore_evas_shutdown();
return 0;
}
```
the raw file canbe found here : https://www.hasselblad.com/learn/sample-images/
Test Plan: test executable with avif files found in libavif project
Reviewers: raster, q66
Reviewed By: q66
Subscribers: q66, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12051
Carsten Haitzler (Rasterman) [Wed, 15 Jul 2020 11:22:22 +0000 (12:22 +0100)]
edje - fix edje_cc mis-re-iding images in image sets
wanr of unused images so it's properly fixed too... always warn to
stdout so devs know to cleanup their theme. by not removing image sets
this fixes the mis-id'ing too.
@fix
Shinwoo Kim [Fri, 19 Jun 2020 07:30:41 +0000 (16:30 +0900)]
filter: make grayscale, inverse_color faster (GL)
This commit for grayscale, inverse_color filter used by enlightenment.
The fps is decreased with those filters because filter is using off-
screen buffer and copying data between buffers. This commit makes
filter do not use off-screen buffer. Finally the fps is almost same
between ON and OFF filter.
*tizen_only
Change-Id: Ia7ba742d4d8a893fe4908e17895c388cfa3fc286
Stefan Schmidt [Tue, 14 Jul 2020 13:56:54 +0000 (15:56 +0200)]
Revert "ci: travis: make sure we disable avif loader by default in our jobs"
This reverts commit
44a018d37ffdf03627fc5d45aa249c2237bf5dac.
With the libavif module patch reverted this also needs to go, until its
back.
Alastair Poole [Tue, 14 Jul 2020 11:11:48 +0000 (12:11 +0100)]
elm_code: cursor visbility fix.
If the widget is scrollable on the x axis, the cursor was being
displayed in some rare cases when scrolling and the code widget
did not cover the whole window region. e.g. a filepanel to the
left of the widget could potentially have the cursor erroneously
shown. This fixes as per the y axis hide.
@fix
Alastair Poole [Tue, 14 Jul 2020 10:11:16 +0000 (11:11 +0100)]
elm_code: on newline ensure line number visible.
@fix T2798
Carsten Haitzler (Rasterman) [Tue, 14 Jul 2020 09:54:57 +0000 (10:54 +0100)]
Revert "Evas: add avif evas loader"
This reverts commit
dd23a6c84aee249aa5316b48af6956072233bb97.
i didn't mean to push this yet...
Stefan Schmidt [Tue, 14 Jul 2020 09:38:55 +0000 (11:38 +0200)]
ci: travis: make sure we disable avif loader by default in our jobs
This has been newly added (disabled by default) but we need to take care
of it in our manually disabled loaders in specific builds.
Myoungwoon Roy, Kim [Tue, 14 Jul 2020 08:48:04 +0000 (09:48 +0100)]
docs: Correct the wrong API group name and typo in Evas, Eet, Eina, Eio and Elementary
Summary: I found wrong API reference group name in mapbuf, Evas, Eet, Eina, Eio and fixed them.
Test Plan: API reference documentation modification only
Reviewers: segfaultxavi, stefan_schmidt
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12052
Vincent Torri [Sat, 11 Jul 2020 10:34:01 +0000 (11:34 +0100)]
Evas: add avif evas loader
Summary: Add AV1 image file loader to Evas
Test Plan: test executable with avif files found in libavif project
Reviewers: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12051
Alastair Poole [Mon, 13 Jul 2020 12:21:35 +0000 (13:21 +0100)]
tests: remove popup test.
This was put here due to a miscommunication. It was for resolving
an issue with one of our applications. It wasn't meant to be in
this part of testing anyway. Remove as the popup in the application
itself was broken.
Myoungwoon Roy, Kim [Fri, 10 Jul 2020 00:27:35 +0000 (09:27 +0900)]
docs: Correct the wrong group name in access, mapbuf, object, popup and win
Change-Id: I70e6baa59453f97c439a1f80f5743c441cfb5f61
Jaehyun Cho [Mon, 6 Jul 2020 04:42:11 +0000 (13:42 +0900)]
efl_ui_image: fix hit_rect geometry only if scale type is expand
In the past version, "clicked" event happens although image file is not
set and resizable is false and scale type is expand.
To keep the backward compatibility of supporting "clicked" event,
hit_rect geometry is set to be the same with object geometry if image
file is not set and scale type is expand.
The above logic is not applied to upstream.
Because size calculation logic between upstream and tizen is different
so _image_sizing_eval() is not called in upstream if image file is not
set.
@tizen_fix
Change-Id: I39e094702d631e2c3150ae7a9b4d8e314468fa5d
Myoungwoon Roy, Kim [Thu, 9 Jul 2020 09:24:09 +0000 (10:24 +0100)]
docs: Correct the wrong API group name in Elementary and Change an invalid URL in Evas
Summary:
I had found broken URL address for SGI free software license B v2.0 and changed valid URL address
In addition, I found wrong group name in glview, grid, index, label, list, map, mapbuf, naviframe, notify, panel, photocam, plug, popup, radio, scroller, spinner, table, win, atspi, frame, access, textpath, elm_object, color_class and fixed them.
Test Plan: API reference documentation modification only
Reviewers: segfaultxavi, stefan_schmidt, raster
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12049
Alastair Poole [Tue, 7 Jul 2020 14:53:50 +0000 (15:53 +0100)]
ibox: Preview Theme Code
Summary: Dependency for https://phab.enlightenment.org/D12046
Reviewers: raster
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12047
Carsten Haitzler (Rasterman) [Tue, 7 Jul 2020 11:43:39 +0000 (12:43 +0100)]
Revert "edje: Avoid string duplication when possible."
This reverts commit
704d58d658ed4424a886c127f3bbe83afde1f2a1.
gee. it looked innocent enough... it broke tests and everything in e
Woochanlee [Tue, 7 Jul 2020 10:20:53 +0000 (11:20 +0100)]
edje: Avoid string duplication when possible.
Summary:
Most use case the part name dosen't contain the recursive name
so we don't have to go through expensive eina_string_split operation.
Reviewers: smohanty, cedric, Hermet, raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12045
Ali Alzyod [Mon, 6 Jul 2020 11:43:40 +0000 (12:43 +0100)]
evas_text: lazy loading color glyph images in RAM
Summary:
Lazy loading for glyph images into RAM, instead of caching at layout level we will cache only when rendering.
This may affect speed a bit since color glyphs will be loaded twice before caching (with FT_Load_Glyph)
Try to run test application, and hit `scale font`
** RAM consumption (Accelerated Rendering) **
| Before | After |
|-------:|-------|
| 111.9 | 21.8 |
| 204.8 | 24.4 |
| 298.0 | 26.3 |
| 391.5 | 28.4 |
| 484.8 | 29.9 |
| 578.1 | 31.4 |
| 671.4 | 32.5 |
** RAM consumption (SW Rendering) **
| Before | After |
|-------:|-------|
| 104 | 14.6 |
| 197 | 17 |
| 290 | 19.1 |
| 384 | 21.2 |
| 477 | 22.8 |
| 571 | 24.3 |
| 664 | 25.6 |
Test Plan:
```
typedef struct _APP
{
Evas_Object *tb1;
Evas_Object *btnLoad;
} APP;
char *text = "<align=center><color=#
4DE0FFFF underline=on underline_color=#
4DE0FFFF><a href='tel:
1234567890'>
1234567890</a></color>๐๐๐๐คฃ๐๐๐
๐๐๐๐๐๐๐๐๐๐โบ๐๐ค๐ค๐๐๐ถ๐๐๐ฃ๐ฅ๐ฎ๐ค๐ฏ๐ช๐ซ๐ด๐๐ค๐๐๐๐คค๐๐๐๐๐๐ค๐ฒโน๐๐๐๐๐ค๐ข๐ญ๐ฆ๐ง๐จ๐ฉ๐ฌ๐ฐ๐ฑ๐ณ๐ต๐ก๐ ๐๐ค ๐คก๐คฅ๐ท๐ค๐ค๐คข๐คงโป๐๐ฟ๐น๐บ๐โ ๐ป๐ฝ๐พ๐ค๐ฉ๐บ๐ธ๐น๐ป๐ผ๐ฝ๐๐ฟ๐พ๐๐๐๐ฆ๐ง๐จ๐ฉ๐ต๐ถ๐ผ๐จโโ๏ธ๐ฉโโ๏ธ๐จโ๐๐ฉโ๐๐จโ๐ซ๐ฉโ๐ซ๐จโโ๐ฉโโ๐จโ๐พ๐ฉโ๐พ๐จโ๐ณ๐ฉโ๐ณ๐จโ๐ง๐ฉโ๐ง๐จโ๐ญ๐ฉโ๐ญ๐จโ๐ผ๐ฉโ๐ผ๐จโ๐ฌ๐ฉโ๐ฌ๐จโ๐ป๐ฉโ๐ป๐จโ๐ค๐ฉโ๐ค๐จโ๐จ๐ฉโ๐จ๐จโโ๏ธ๐ฉโโ๏ธ๐จโ๐๐ฉโ๐๐จโ๐๐ฉโ๐๐ฎโโ๏ธ๐ฎโโ๏ธ๐ต๏ธโโ๏ธ๐ต๏ธโโ๏ธ๐โโ๏ธ๐โโ๏ธ๐ทโโ๏ธ๐ทโโ๏ธ๐ณโโ๏ธ๐ณโโ๏ธ๐ฑโโ๏ธ๐ฑโโ๏ธ๐
๐คถ๐ธ๐คด๐ฐ๐คต๐คฐ๐ฒ๐โโ๏ธ๐โโ๏ธ๐โโ๏ธ๐โโ๏ธ๐
โโ๏ธ๐
โโ๏ธ๐โโ๏ธ๐โโ๏ธ๐โโ๏ธ๐โโ๏ธ๐โโ๏ธ๐โโ๏ธ๐โโ๏ธ๐โโ๏ธ๐คฆโโ๏ธ๐คฆโโ๏ธ๐คทโโ๏ธ๐คทโโ๏ธ๐โโ๏ธ๐โโ๏ธ๐โโ๏ธ๐โโ๏ธ๐ถโโ๏ธ๐ถโโ๏ธ๐โโ๏ธ๐โโ๏ธ๐๐บ๐ฏโโ๏ธ๐ฏโโ๏ธ๐ด๐ฃ๐ค๐ฅ๐ซ๐ฌ๐ญ๐๐๐ช๐จโ๐ฉโ๐ง๐จโ๐ฉโ๐งโ๐ฆ๐จโ๐ฉโ๐ฆโ๐ฆ๐จโ๐ฉโ๐งโ๐ง๐จโ๐ฆ๐จโ๐ฆโ๐ฆ๐จโ๐ง๐จโ๐งโ๐ฆ๐จโ๐งโ๐ง๐ฉโ๐ฆ๐ฉโ๐ฆโ๐ฆ๐ฉโ๐ง๐ฉโ๐งโ๐ฆ๐ฉโ๐งโ๐ง๐ช๐คณ๐๐โ๏ธ๐๐๐โ๐ค๐๐ค๐๐โ๐๐๐โ๐๐ค๐ค๐ค๐๐โ๐๐๐๐ค๐
๐๐๐ฃ๐๐๐
๐๐๐โค๐๐๐๐๐๐๐๐๐๐ค๐๐๐โฃ๐๐ค๐ข๐ฃ๐ฅ๐ฆ๐จ๐ซ๐ฌ๐จ๐ฏ๐ญ๐ณ๐๐ถ๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐ ๐ก๐ข๐๐๐ฉ๐โ๐ฟ๐๐๐๐ต๐๐ฆ๐ถ๐๐ฉ๐บ๐ฆ๐ฑ๐๐ฆ๐ฏ๐
๐๐ด๐๐ฆ๐ฆ๐ฎ๐๐๐๐ท๐๐๐ฝ๐๐๐๐ช๐ซ๐๐ฆ๐ญ๐๐๐น๐ฐ๐๐ฟ๐ฆ๐ป๐จ๐ผ๐พ๐ฆ๐๐๐ฃ๐ค๐ฅ๐ฆ๐ง๐๐ฆ
๐ฆ๐ฆ๐ธ๐๐ข๐ฆ๐๐ฒ๐๐ณ๐๐ฌ๐๐ ๐ก๐ฆ๐๐๐ฆ๐ฆ๐ฆ๐ฆ๐๐๐๐๐๐ท๐ธ๐ฆ๐๐ธ๐ฎ๐ต๐น๐ฅ๐บ๐ป๐ผ๐ทโ๐ฑ๐ฒ๐ณ๐ด๐ต๐พ๐ฟโ๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐
๐ฅ๐ฅ๐๐ฅ๐ฅ๐ฝ๐ถ๐ฅ๐๐ฅ๐ฐ๐๐ฅ๐ฅ๐ฅ๐ง๐๐๐ฅ๐๐๐๐ญ๐ฎ๐ฏ๐ฅ๐ฅ๐ณ๐ฅ๐ฒ๐ฅ๐ฟ๐ฑ๐๐๐๐๐๐๐ ๐ข๐ฃ๐ค๐ฅ๐ก๐ฆ๐ง๐จ๐ฉ๐ช๐๐ฐ๐ซ๐ฌ๐ญ๐ฎ๐ฏ๐ผ๐ฅโ๐ต๐ถ๐พ๐ท๐ธ๐น๐บ๐ป๐ฅ๐ฝ๐ด๐ฅ๐ช๐บ๐๐๐๐โจ๐๐๐๐๐๐๐๐๐๐๐๐๐๐ซ๐๐๐
๐ฅ๐ฅ๐ฅโฝ๏ธโพ๏ธ๐๐๐๐๐พ๐ฑ๐ณ๐๐๐๐๐ธ๐ฅ๐ฅ๐ฅ
๐ฏโณ๐๏ธโโ๏ธ๐๏ธโโ๏ธโธ๐ฃ๐ฝ๐ฟโท๐๐โโ๏ธ๐โโ๏ธ๐๐โโ๏ธ๐โโ๏ธโน๏ธโโ๏ธโน๏ธโโ๏ธ๐๏ธโโ๏ธ๐๏ธโโ๏ธ๐ดโโ๏ธ๐ดโโ๏ธ๐ตโโ๏ธ๐ตโโ๏ธ๐๐๐คธโโ๏ธ๐คธโโ๏ธ๐คผโโ๏ธ๐คผโโ๏ธ๐คฝโโ๏ธ๐คฝโโ๏ธ๐คพโโ๏ธ๐คพโโ๏ธ๐คบ๐คนโโ๏ธ๐คนโโ๏ธ๐ฎ๐น๐ฒโ ๏ธโฅ๏ธโฆ๏ธโฃ๏ธ๐๐๐ด๐๐๐๐๐บ๐โฐ๐๐ป๐๐๐๐๐๐๐๐๐๐๐๐ ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐จ๐ฉ๐ช๐ซ๐ฌ๐ญ๐ฏ๐ฐ๐๐ผ๐ฝโช๐๐โฉ๐โฒโบ๐๐๐๐
๐๐๐โผโจ๏ธ๐๐ ๐ก๐ข๐๐ช๐ญ๐ผ๐จ๐ฐ๐๐๐๐
๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐โ๐๐ฒ๐ด๐ต๐๐ฃ๐คโฝ๐จ๐ฅ๐ฆ๐ง๐โโต๐ฃโโ๏ธ๐ฃโโ๏ธ๐ถ๐ค๐ณโด๐ฅ๐ขโ๐ฉ๐ซ๐ฌ๐บ๐๐๐ ๐ก๐๐ฐ๐๐ช๐๐๐๐ฝ๐ฟ๐๐โโณโโฐโฑโฒ๐ฐ๐๐ง๐๐๐๐๐๐๐๐๐๐ ๐๐ก๐๐ข๐๐ฃ๐๐ค๐๐ฅ๐๐ฆ๐๐๐๐๐๐๐๐๐๐๐๐๐กโ๏ธ๐๐โญ๐๐ โ๏ธโ
โ๐ค๐ฅ๐ฆ๐ง๐จ๐ฉ๐ช๐ซ๐ฌ๐๐๐โ๏ธโโฑโกโโ๏ธโโ๐ฅ๐ง๐๐๐๐๐๐ข๐ฃ๐ฏ๐๐๐ผ๐ต๐ถ๐๐๐๐ค๐ง๐ป๐ท๐ธ๐น๐บ๐ป๐ฅ๐ฑ๐ฒโ๏ธ๐๐๐ ๐๐๐ป๐ฅ๐จโจ๐ฑ๐ฒ๐ฝ๐พ๐ฟ๐๐ฅ๐๐ฝ๐ฌ๐บ๐ท๐ธ๐น๐ผ๐๐๐ฌ๐ญ๐ก๐ฏ๐ก๐ฆ๐ฎ๐๐๐๐๐๐๐๐๐๐๐๐๐ฐ๐๐๐๐ท๐ฐ๐ด๐ต๐ถ๐ท๐ธ๐ณ๐ฑ๐ฒโ๐ง๐จ๐ฉ๐ค๐ฅ๐ฆ๐ซ๐ช๐ฌ๐ญ๐ฎ๐ณโโ๐๐๐๐๐๐ผ๐๐๐๐
๐๐๐๐๐๐๐๐๐๐๐๐๐๐โ๏ธ๐๐๐๐๐๐๐๐๐๐จโโ๐ ๐กโ๐ซ๐น๐ก๐ง๐ฉโ๐โโ๐โ๐๐๐ฌโฐโฑ๐ฟ๐ข๐ฎ๐ฎ๐ง๐ฎ๐ฐโฟ๐น๐บ๐ป๐ผ๐พ๐๐๐๐
โ ๏ธ๐ธโ๐ซ๐ณ๐ญ๐ฏ๐ฑ๐ท๐ต๐โขโฃโฌ๏ธโ๏ธโก๏ธโ๏ธโฌ๏ธโ๏ธโฌ
๏ธโ๏ธโ๏ธโ๏ธโฉโชโคด๏ธโคต๏ธ๐๐๐๐๐๐๐๐โ๐โกโธโฏ๏ธโฆโฎ๐๐ฏโโโโโโโโโโโโโ๐๐๐โถ๏ธโฉโญโฏโ๏ธโชโฎ๐ผโซ๐ฝโฌโธโนโบโ๐ฆ๐
๐๐ถ๐ณ๐ดโป๏ธ๐โ๐ฐ๐ฑโญโ
โโโโโโโ๏ธโ๏ธโโโโฐโฟใฝโณโดโโ๏ธโโโโใฐ๐๐ฏ๐ ๐ก๐ข๐ฃ๐ค๐
ฐ๏ธ๐๏ธ๐
ฑ๏ธ๐๏ธ๐๏ธ๐๏ธโน๐๏ธโ๏ธ๐๏ธ๐๏ธ๐
พ๏ธ๐๏ธ๐
ฟ๏ธ๐๏ธ๐๏ธ๐๏ธ๐๐๐ท๐ถ๐ฏ๐๐น๐๐ฒ๐๐ธ๐ด๐ณใใ๐บ๐ตโซ๏ธโปโผโฝโพโฌโฌ๐ถ๏ธ๐ท๏ธ๐ธ๏ธ๐น๏ธ๐บ๏ธ๐ป๐ ๐๐ฒ๐ณโชโซ๐ด๐ต๐๐ฉ๐ด๐ณ๐ณ๏ธโ๐โโโโโโ
โพโพ๐ฆ๐จ๐ฆ๐ฉ๐ฆ๐ช๐ฆ๐ซ๐ฆ๐ฌ๐ฆ๐ฎ๐ฆ๐ฑ๐ฆ๐ฒ๐ฆ๐ด๐ฆ๐ถ๐ฆ๐ท๐ฆ๐ธ๐ฆ๐น๐ฆ๐บ๐ฆ๐ผ๐ฆ๐ฝ๐ฆ๐ฟ๐ง๐ฆ๐ง๐ง๐ง๐ฉ๐ง๐ช๐ง๐ซ๐ง๐ฌ๐ง๐ญ๐ง๐ฎ๐ง๐ฏ๐ง๐ฑ๐ง๐ฒ๐ง๐ณ๐ง๐ด๐ง๐ถ๐ง๐ท๐ง๐ธ๐ง๐น๐ง๐ผ๐ง๐พ๐ง๐ฟ๐จ๐ฆ๐จ๐จ๐จ๐ฉ๐จ๐ซ๐จ๐ฌ๐จ๐ญ๐จ๐ฎ๐จ๐ฐ๐จ๐ฑ๐จ๐ฒ๐จ๐ณ๐จ๐ด๐จ๐ท๐จ๐บ๐จ๐ป๐จ๐ผ๐จ๐ฝ๐จ๐พ๐จ๐ฟ๐ฉ๐ช๐ฉ๐ฏ๐ฉ๐ฐ๐ฉ๐ฒ๐ฉ๐ด๐ฉ๐ฟ๐ช๐จ๐ช๐ช๐ช๐ฌ๐ช๐ญ๐ช๐ท๐ช๐ธ๐ช๐น๐ช๐บ๐ซ๐ฎ๐ซ๐ฏ๐ซ๐ฐ๐ซ๐ฒ๐ซ๐ด๐ซ๐ท๐ฌ๐ฆ๐ฌ๐ง๐ฌ๐ฉ๐ฌ๐ช๐ฌ๐ซ๐ฌ๐ฌ๐ฌ๐ญ๐ฌ๐ฎ๐ฌ๐ฑ๐ฌ๐ฒ๐ฌ๐ณ๐ฌ๐ต๐ฌ๐ถ๐ฌ๐ท๐ฌ๐ธ๐ฌ๐น๐ฌ๐บ๐ฌ๐ผ๐ฌ๐พ๐ญ๐ฐ๐ญ๐ฒ๐ญ๐ณ๐ญ๐ท๐ญ๐น๐ญ๐บ๐ฎ๐จ๐ฎ๐ฉ๐ฎ๐ช๐ฎ๐ฑ๐ฎ๐ฒ๐ฎ๐ณ๐ฎ๐ด๐ฎ๐ถ๐ฎ๐ท๐ฎ๐ธ๐ฎ๐น๐ฏ๐ช๐ฏ๐ฒ๐ฏ๐ด๐ฏ๐ต๐ฐ๐ช๐ฐ๐ฌ๐ฐ๐ญ๐ฐ๐ฎ๐ฐ๐ฒ๐ฐ๐ณ๐ฐ๐ต๐ฐ๐ท๐ฐ๐ผ๐ฐ๐พ๐ฐ๐ฟ๐ฑ๐ฆ๐ฑ๐ง๐ฑ๐จ๐ฑ๐ฎ๐ฑ๐ฐ๐ฑ๐ท๐ฑ๐ธ๐ฑ๐น๐ฑ๐บ๐ฑ๐ป๐ฑ๐พ๐ฒ๐ฆ๐ฒ๐จ๐ฒ๐ฉ๐ฒ๐ช๐ฒ๐ฌ๐ฒ๐ญ๐ฒ๐ฐ๐ฒ๐ฑ๐ฒ๐ฒ๐ฒ๐ณ๐ฒ๐ด๐ฒ๐ต๐ฒ๐ถ๐ฒ๐ท๐ฒ๐ธ๐ฒ๐น๐ฒ๐บ๐ฒ๐ป๐ฒ๐ผ๐ฒ๐ฝ๐ฒ๐พ๐ฒ๐ฟ๐ณ๐ฆ๐ณ๐จ๐ณ๐ช๐ณ๐ซ๐ณ๐ฌ๐ณ๐ฎ๐ณ๐ฑ๐ณ๐ด๐ณ๐ต๐ณ๐ท๐ณ๐บ๐ณ๐ฟ๐ด๐ฒ๐ต๐ฆ๐ต๐ช๐ต๐ซ๐ต๐ฌ๐ต๐ญ๐ต๐ฐ๐ต๐ฑ๐ต๐ฒ๐ต๐ณ๐ต๐ท๐ต๐ธ๐ต๐น๐ต๐ผ๐ต๐พ๐ถ๐ฆ๐ท๐ช๐ท๐ด๐ท๐ธ๐ท๐บ๐ท๐ผ๐ธ๐ฆ๐ธ๐ง๐ธ๐จ๐ธ๐ฉ๐ธ๐ช๐ธ๐ฌ๐ธ๐ญ๐ธ๐ฎ๐ธ๐ฐ๐ธ๐ฑ๐ธ๐ฒ๐ธ๐ณ๐ธ๐ด๐ธ๐ท๐ธ๐ธ๐ธ๐น๐ธ๐ป๐ธ๐ฝ๐ธ๐พ๐ธ๐ฟ๐น๐ฆ๐น๐จ๐น๐ฉ๐น๐ซ๐น๐ฌ๐น๐ญ๐น๐ฏ๐น๐ฐ๐น๐ฑ๐น๐ฒ๐น๐ณ๐น๐ด๐น๐ท๐น๐น๐น๐ป๐น๐ผ๐น๐ฟ๐บ๐ฆ๐บ๐ฌ๐บ๐ณ๐บ๐ธ๐บ๐พ๐บ๐ฟ๐ป๐ฆ๐ป๐จ๐ป๐ช๐ป๐ฌ๐ป๐ฎ๐ป๐ณ๐ป๐บ๐ผ๐ซ๐ผ๐ธ๐ฝ๐ฐ๐พ๐ช๐พ๐น๐ฟ๐ฆ๐ฟ๐ฒ๐ฟ๐ผ8<br/><br/><br/><br/>Sent from my Samsung Galaxy smartphone.</align>";
int font_size = 50;
int counter = 0;
void _button_clicked(void *data, Evas_Object *obj, void *event_info)
{
APP *app = data;
font_size += 10;
Evas_Textblock_Style *style = evas_textblock_style_new();
char buffer[100] = {0};
sprintf(buffer, "DEFAULT='font=NotoColorEmoji font_size=%i color=red ellipsis=-1.0 wrap=mixed'", font_size);
evas_textblock_style_set(style, buffer);
evas_object_textblock_style_set(app->tb1, style);
evas_textblock_style_free(style);
style = NULL;
}
EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
APP *app = calloc(1, sizeof(APP));
Evas_Object *win, *scroller1, *scroller2, *box;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = elm_win_util_standard_add("", "");
elm_win_autodel_set(win, EINA_TRUE);
box = elm_box_add(win);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
scroller1 = elm_scroller_add(win);
evas_object_size_hint_weight_set(scroller1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(scroller1, EVAS_HINT_FILL, EVAS_HINT_FILL);
app->tb1 = evas_object_textblock_add(win);
Evas_Textblock_Style *style = evas_textblock_style_new();
char buffer[100] = {0};
sprintf(buffer, "DEFAULT='font=NotoColorEmoji font_size=%i color=red ellipsis=-1.0 wrap=mixed'", font_size);
evas_textblock_style_set(style, buffer);
evas_object_textblock_style_set(app->tb1, style);
evas_textblock_style_free(style);
style = NULL;
evas_font_cache_set(evas_object_evas_get(app->tb1), 0);
int w,h;
evas_object_textblock_text_markup_set(app->tb1, "");
evas_object_size_hint_min_set(app->tb1, 400, 400);
elm_object_content_set(scroller1, app->tb1);
elm_box_pack_end(box, scroller1);
elm_object_content_set(win, box);
app->btnLoad = elm_button_add(win);
elm_object_text_set(app->btnLoad, "Scale Font");
evas_object_smart_callback_add(app->btnLoad, "clicked", _button_clicked, app);
evas_object_show(app->btnLoad);
evas_object_move(app->btnLoad, 0, 20);
evas_object_resize(app->btnLoad, 150, 20);
evas_object_textblock_text_markup_set(app->tb1, text);
evas_object_textblock_size_formatted_get(app->tb1, &w, &h);
evas_object_size_hint_min_set(app->tb1, 400, w/400 + h + 150);
evas_object_resize(win, 400, 400);
evas_object_show(box);
evas_object_show(scroller1);
evas_object_show(scroller2);
evas_object_show(win);
elm_run();
return 0;
}
ELM_MAIN()
```
Reviewers: raster, woohyun, bowonryu, bu5hm4n, zmike, segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8727
Differential Revision: https://phab.enlightenment.org/D11861
Change-Id: I602e18fc2918af94dd92636fdc718e473fe72ec6
Stefan Schmidt [Wed, 17 Jun 2020 11:21:24 +0000 (13:21 +0200)]
benchmark: eina: remove outdated ecore_hash
Ecore_hash is an ancestor of eina_hash and not used anywhere anymore.
We simply forgot to remove it from our benchmark utility.
Together with ecore_hash we are removing ecore_strings, which uses it,
and the corresponding benchmark files.
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12042
Wander Lairson Costa [Tue, 23 Jun 2020 15:21:10 +0000 (15:21 +0000)]
windows: Fix path for file sanitization
```
> c:\
> cd /windows
```
Are valid paths. Paths starting with '\' or '/' should be considered
absolute paths.
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: Joรฃo Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12022
Elyes HAOUAS [Mon, 22 Jun 2020 18:21:01 +0000 (18:21 +0000)]
Fix typos - (Part #3)
Fix some typos
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12017
Elyes HAOUAS [Fri, 26 Jun 2020 09:01:32 +0000 (09:01 +0000)]
Fix typos - (Part #2)
Fix some typos
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12016
Jaehyun Cho [Mon, 6 Jul 2020 04:42:11 +0000 (13:42 +0900)]
efl_ui_image: fix hit_rect geometry
In the past version, "clicked" event happens although image file is not
set and resizable is false and scale type is expand.
To keep the backward compatibility of supporting "clicked" event,
hit_rect geometry is set to be the same with object geometry if image
file is not set.
In the past version, hit_rect geometry is not the same with object if
image file is not set and resizable is false and scale type is not
expand.
e.g. In the past version, if object size is (360, 80), then hit_rect
size is set to be (360, 360).
To fix the bug in the past version related to hit_rect, hit_rect
geometry is set to be the same with object geometry if image file is not
set regardless of resizable and scale type.
The above logic is not applied to upstream.
Because size calculation logic between upstream and tizen is different
so _image_sizing_eval() is not called in upstream if image file is not
set.
@tizen_fix
Change-Id: I5bfb1c973b9710b01594d2c1cfaa538dab02a2c2
Jaehyun Cho [Mon, 6 Jul 2020 04:42:11 +0000 (13:42 +0900)]
efl_ui_image: fix hit_rect geometry only if scale type is expand
In the past version, "clicked" event happens although image file is not
set and resizable is false and scale type is expand.
To keep the backward compatibility of supporting "clicked" event,
hit_rect geometry is set to be the same with object geometry if image
file is not set and scale type is expand.
The above logic is not applied to upstream.
Because size calculation logic between upstream and tizen is different
so _image_sizing_eval() is not called in upstream if image file is not
set.
@tizen_fix
Change-Id: I39e094702d631e2c3150ae7a9b4d8e314468fa5d
Wander Lairson Costa [Fri, 3 Jul 2020 14:06:03 +0000 (14:06 +0000)]
Protect EINA_(UN)LIKELY with parenthesis around the expr
Without it an expression like !EINA_LIKELY(a && b) expands
!a && b
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D12041
Myoungwoon Roy, Kim [Wed, 1 Jul 2020 00:07:41 +0000 (09:07 +0900)]
efl_ui_widget: Add exception handling for calloc
Change-Id: I5c897e3a98fe73289e6eb4adc08462c8c6eeab66
Jeonghyun Yun [Tue, 23 Jun 2020 05:59:12 +0000 (14:59 +0900)]
efl_ui_widget: add color class update when the style is updated
Change-Id: Iad6fe717a927f78238538b6c554edc4cf356c253
Signed-off-by: Jeonghyun Yun <jh0506.yun@samsung.com>
Shinwoo Kim [Wed, 1 Jul 2020 11:38:10 +0000 (20:38 +0900)]
gl_tbm: unregister log domain correctly
This patch will solve a SIGABRT issue caused by following step.
1. module_open
2. module_close /* does not set log domain to -1 */
3. module_open /* does not register log domain
because it is not negative value */
4. module_close /* try to free not allocated memory */
Change-Id: Ifcb6b77481d433912b2527080bbb668f7ba7b1c8
Marcel Hollerbach [Wed, 10 Jun 2020 18:48:45 +0000 (20:48 +0200)]
evas_common_privat: improve tiler merge flag
when this is a int and you assign 0, the whole "0" for the entire int is
moved. When this is a bit flag like this, it is a simple | operation,
which makes the whole thing somehow faster.
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11998
Joรฃo Paulo Taylor Ienczak Zanette [Wed, 1 Jul 2020 07:23:53 +0000 (09:23 +0200)]
Meson.build cleanup.
Summary:
This is a 8 commit patch, but only for a while - after agreeing with
each of the changes, it shall be squashed into a single commit.
I want to make further changes on meson.build (maybe I can end up simplifying
the build system, or just let things more organized in the end) and thought
that starting with a cleanup would be a good first step.
The changes are:
1. build: set arguments scope to project instead of globally
If we set arguments globally, it may conflict with other builds - specially
considering [meson's subprojects
feature](https://mesonbuild.com/Subprojects.html). Setting to project
arguments ensures we are only considering EFL and not leaking unwanted flags.
2. build: Fix spacing and indent
Mostly because it is not well standardized during the file - sometimes
there's spaces between tokens, sometimes there is not, etc. The same applies
to indent.
3. build: move test environment closer to test commands
Just as a matter of organization. If we're doing things for tests that don't
impact other stuff, then leave it when tests are handled.
4. build: Remove unnecessary parenthesis and == true comparisons
Less noisy redundancy: `true` is already true, and `false` is already false,
no need to re-check. Besides, reading `if sys_windows` and `if sys_windows
== true` shouldn't have different effects, as the first you can read as "if
the system is windows". It gets better when you have `not` instead of `==
false`, so for an example you could read `if not sys_windows` as "if it is
not a windows system" more naturally.
5. build: Switch pc_files to dict
Just thought it could stay a little better (since it works as a dict),
specially in the `foreach` right after.
6. **[removed to a future patch]** build: Use meson's warning_level instead of hardcoded -Wall
This way we ensure this is compiler-independant (and use the correct feature
for that, since meson even warns when configuring the build dir).
7. build: Use language args from add_project_arguments properly instead of a loop
The `language:` kwarg from `add_{project,global}_arguments` receives a list
of languages, so no need for that loop.
8. **[removed to a future patch]** build: Use '/' instead of join_paths
As it [is recommended by meson since
v0.49](https://mesonbuild.com/Release-notes-for-0-49-0.html#joining-paths-with-)
(and stays clearer IMO, specially since that's how some languages are
adopting path separation, e.g. C++'s filesystem stdlib).
Reviewers: bu5hm4n
Subscribers: vtorri, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11994
Myoungwoon Roy, Kim [Wed, 1 Jul 2020 01:31:20 +0000 (10:31 +0900)]
docs: Correct the wrong API group name in Elementary
Change-Id: If71e4f3318a725c22f5a48ce2c8d5a928117ff48
Jaehyun Cho [Wed, 1 Jul 2020 06:49:40 +0000 (15:49 +0900)]
elc_naviframe: fix to show pushed item if top item is deleted
If top item is deleted in "transition,finished" smart callback by user
before _on_item_push_finished is not finished, then pushed item is
hidden in _on_item_push_finished and no item is visible.
To resolve the above issue, _on_item_push_finished does not hide
pushed item if pushed item becomes top item.
Change-Id: I8d7d31e681f52c66accb7ce2029232a35ee86025
Myoungwoon Roy, Kim [Mon, 29 Jun 2020 09:52:33 +0000 (18:52 +0900)]
docs: Correct the wrong API group name in Edje and Elm_Box
Change-Id: Iaa5c77f33425a172bf03d3553d81d29b2609892a
Christopher Michael [Mon, 29 Jun 2020 13:01:54 +0000 (09:01 -0400)]
ecore-evas-wayland: Fix minor typo in error message
Hosang Kim [Mon, 29 Jun 2020 06:01:15 +0000 (15:01 +0900)]
ecore_wl2_input: initializes code variable.
Change-Id: I99440ba38835c42829e8d50b736d0904c7d30adb
Carsten Haitzler (Rasterman) [Sun, 28 Jun 2020 21:52:17 +0000 (22:52 +0100)]
ecore evas wl - cnp - dont segv is data is null
this is probably wrong but crashing is not nice... bettr to NOP than
crash right now.
Lucas Cavalcante de Sousa [Fri, 26 Jun 2020 12:51:01 +0000 (12:51 +0000)]
Native Windows: Eina: Resolve bad comparison while using windows strerror_s
`strerror_s` is the windows alternative of `strerror_r` used by EFL.
`strerror_s` never return the error code with the message as
`strerror_r` does, because of that, while comparing the first 14
characters of `Unknown error ` to the message from unknown code 4096
(`Unknown error`) they were accusing being different - in UNIX this
works because the message returned is `Unknown error 4096`.
This error was noticeable at `eina_error_test_failures` test case.
This Diff adds the error code to the message in case of an `Unknown
error`, making the windows implementation compliant with UNIX.
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: Wander Lairson Costa <wander.lairson@gmail.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12033
Vincent Torri [Thu, 25 Jun 2020 14:44:15 +0000 (14:44 +0000)]
Windows: fix eina_file_map_new()
the offset passed to MapViewOfFile() must be a multiple of the granularity.
https://docs.microsoft.com/en-us/windows/win32/memory/creating-a-view-within-a-file is taken as basis for this patch
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Wander Lairson Costa <wander.lairson@gmail.com>
Differential Revision: https://phab.enlightenment.org/D12031
Wander Lairson Costa [Wed, 24 Jun 2020 13:32:12 +0000 (13:32 +0000)]
Fix eina file thread test on Windows
On windows, we try to open the "cmd.exe" file, but without the full path
the test fails unless it runs from the system directory.
We now use the full path to test the eina_file_open function.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: Joรฃo Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D12021
Marcel Hollerbach [Wed, 10 Jun 2020 18:48:37 +0000 (20:48 +0200)]
eina_array: micro optimize eina_array_push
This commit does two things:
- Tell the compiler that it is unlikely that we need to grow, and that
it is unlikely that data is NULL. Sometimes the if check for data
would get dropped out by the compiler when it can be ensured that it is
!= NULL. However, if we for example efl_add something and eina_push
the result, the condition would not be removed, as there is no assertion
efl_add would be != NULL.
- Do not hide the array assignment in a branch, but make it the default
branch, this way instruction cache caches the correct instruction, as
branch prediction will now hopefully, due to the hinting, take the
correct branch.
While benchmarking this here (simply in elementary_perf), this reduced
pipeline faults in eina_array_push quite a bit. (Btw. it is hard to track
*which* exact calls to eina_array_push do cause that, as mostly this API
gets inlined, so it was easier optimizing that, instead of the method
arround)
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11997
Elyes HAOUAS [Sat, 20 Jun 2020 13:00:10 +0000 (13:00 +0000)]
Fix typos - (Part #5)
Fix some typos
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12019
Elyes HAOUAS [Mon, 22 Jun 2020 18:24:38 +0000 (18:24 +0000)]
Fix typos
Fix some typos
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12015
Myoungwoon Roy, Kim [Wed, 24 Jun 2020 05:40:20 +0000 (14:40 +0900)]
docs: Changes non public Tizen elementary APIs in API reference to internal
Change-Id: Ie6134546631a49acda3e52ee6ca7e2ceafaba17f
JunsuChoi [Thu, 25 Jun 2020 04:13:31 +0000 (13:13 +0900)]
Revert "Efl.Gfx.Path: Change draw of a rounded rect from arc to quadratic"
Summary:
This reverts commit
4f15bde706ec8cd78fa57845c8eee7bdb5515282.
It is the correct way to draw with arc_to.
And breaking compatibility for current_get.
Test Plan: N/A
Reviewers: Hermet, kimcinoo, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12030
Change-Id: Ia0f38eedeba95646e52d360eadc690997fe33e7d
Hosang Kim [Tue, 23 Jun 2020 06:26:15 +0000 (15:26 +0900)]
doxygen: remove broken example images
Change-Id: I8d9c2ecf11c2e46c3cc21259164fddacc52e6610
(cherry picked from commit
8ca44052f8c2957a1a1ffef7c933972df33f82f7)
Joao Antonio Cardoso [Mon, 15 Jun 2020 12:27:46 +0000 (12:27 +0000)]
efl_check.h: Replace stack allocated array by heap allocated
clang-cl doesn't support the syntax of dynamic stack allocated arrays.
ref: windows-native-port
Co-authored-by: Lucas <Coquinho@users.noreply.github.com>
Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11970
Carsten Haitzler (Rasterman) [Tue, 23 Jun 2020 13:00:48 +0000 (14:00 +0100)]
ecore-x vysnc - env var - fix typo
Carsten Haitzler (Rasterman) [Mon, 22 Jun 2020 12:12:23 +0000 (13:12 +0100)]
ecore wl - make comment note about allocating buffers
Wander Lairson Costa [Fri, 12 Jun 2020 20:27:51 +0000 (20:27 +0000)]
eina_test_file.c: Do not test errno if the function doesn't fail
errno only holds a valid value if the function returns an error.
ref: windows-native-port
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11971
Elyes HAOUAS [Sat, 20 Jun 2020 09:47:56 +0000 (09:47 +0000)]
Get rid of trailing whitespaces (14 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12006
Elyes HAOUAS [Sat, 20 Jun 2020 09:54:26 +0000 (09:54 +0000)]
Get rid of trailing whitespaces (13 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12012
Elyes HAOUAS [Sat, 20 Jun 2020 09:52:54 +0000 (09:52 +0000)]
Get rid of trailing whitespaces (12 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12011
Elyes HAOUAS [Sat, 20 Jun 2020 09:51:50 +0000 (09:51 +0000)]
Get rid of trailing whitespaces (11 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12010
Elyes HAOUAS [Sat, 20 Jun 2020 09:50:53 +0000 (09:50 +0000)]
Get rid of trailing whitespaces (10 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12009
Elyes HAOUAS [Sat, 20 Jun 2020 09:50:00 +0000 (09:50 +0000)]
Get rid of trailing whitespaces (9 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12008
Elyes HAOUAS [Sat, 20 Jun 2020 09:48:52 +0000 (09:48 +0000)]
Get rid of trailing whitespaces (8 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12007
Elyes HAOUAS [Sat, 20 Jun 2020 09:47:04 +0000 (09:47 +0000)]
Get rid of trailing whitespaces (7 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12005
Elyes HAOUAS [Sat, 20 Jun 2020 09:45:50 +0000 (09:45 +0000)]
Get rid of trailing whitespaces (6 / 14)
Remove whitespaces
Differential Revision: https://phab.enlightenment.org/D12004
Elyes HAOUAS [Sat, 20 Jun 2020 09:44:55 +0000 (09:44 +0000)]
Get rid of trailing whitespaces (5 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12003
Elyes HAOUAS [Sat, 20 Jun 2020 09:43:56 +0000 (09:43 +0000)]
Get rid of trailing whitespaces (4 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12002
Elyes HAOUAS [Sat, 20 Jun 2020 09:42:50 +0000 (09:42 +0000)]
Get rid of trailing whitespaces (3 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12001
Elyes HAOUAS [Sat, 20 Jun 2020 09:41:45 +0000 (09:41 +0000)]
Get rid of trailing whitespaces (2 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12000
Elyes HAOUAS [Sat, 20 Jun 2020 09:40:20 +0000 (09:40 +0000)]
Get rid of trailing whitespace (1 / 14)
Remove trailing whitespace
Differential Revision: https://phab.enlightenment.org/D11999
JunsuChoi [Tue, 23 Jun 2020 04:46:43 +0000 (13:46 +0900)]
Efl.Gfx.Path: Change draw of a rounded rect from arc to quadratic
Summary:
The rounded rect is a very slightly different shape compared
to chrome's svg output. To solve this, modify to use a quadratic bezier
instead of arc when drawing a round.
Test Plan:
{
F3904500}
(Drawing rect with arc or quadratic)
Compare Image
{
F3904501}
{
F3904502}
Reviewers: Hermet, kimcinoo, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12020
Ali Alzyod [Mon, 22 Jun 2020 08:31:54 +0000 (17:31 +0900)]
eina_strbuf: introduce change last occurrence function
Reviewers: cedric, woohyun, bowonryu
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8757
Differential Revision: https://phab.enlightenment.org/D11990
Ali Alzyod [Mon, 22 Jun 2020 08:27:42 +0000 (17:27 +0900)]
elementary_test: remove leaked style
Summary: remove created style after being set in textblock
Reviewers: woohyun, smohanty
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8742
Differential Revision: https://phab.enlightenment.org/D11944
Ali Alzyod [Mon, 22 Jun 2020 08:16:34 +0000 (17:16 +0900)]
eina_strbuf: if readonly strbuf is malloc, then it will stop being readonly
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8757
Differential Revision: https://phab.enlightenment.org/D11992
Ali Alzyod [Mon, 22 Jun 2020 08:16:02 +0000 (17:16 +0900)]
eina_strbuf_manage_new: update documentation
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8757
Differential Revision: https://phab.enlightenment.org/D11991
AbdullehGhujeh [Mon, 22 Jun 2020 08:02:05 +0000 (17:02 +0900)]
evas textblock : update font source when it set using font_source_set
Summary:
when we set font source, for example with efl_text_font_source_set, the font source will not be updated in the textblock.
this is have same results that has been done in D9548
Test Plan:
#define EFL_EO_API_SUPPORT 1
#define EFL_BETA_API_SUPPORT 1
#include <Efl_Ui.h>
static void
_gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
{
efl_exit(0);
}
static Eo *
_create_label(Eo *win, Eo *bx)
{
Eo *en;
en = efl_add(EFL_UI_TEXTBOX_CLASS, win);
printf("Added Efl.Ui.Text object\n");
efl_text_interactive_editable_set(en, EINA_FALSE);
efl_pack(bx, en);
return en;
}
static void
_gui_setup()
{
char buf[512], f_buf[512];
Eo *win, *bx;
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
efl_text_set(efl_added, "Hello World"),
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
// when the user clicks "close" on a window there is a request to delete
efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _gui_quit_cb, NULL);
bx = efl_add(EFL_UI_BOX_CLASS, win,
efl_content_set(win, efl_added),
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(360, 240)));
snprintf(buf, sizeof(buf), "./TestFontSource.eet");
Eo *en = _create_label(win, bx);
efl_text_set(en, "Hello, This Text Use The Font : Does_Not_Exists_Font_1 : Source + Font Name");
efl_text_font_source_set(en, buf);
efl_text_font_family_set(en, "Does_Not_Exists_Font_1");
efl_text_font_size_set(en, 35);
en = _create_label(win, bx);
efl_text_set(en, "Hello, This Text Use The Font : Does_Not_Exists_Font_1 : Font Name");
efl_text_font_family_set(en, "Does_Not_Exists_Font_1");
efl_text_font_size_set(en, 35);
en = _create_label(win, bx);
efl_text_set(en, "Hello, This Text Use The Font : Does_Not_Exists_Font_2 : Source + Font Name");
efl_text_font_source_set(en, buf);
efl_text_font_family_set(en, "Does_Not_Exists_Font_2");
efl_text_font_size_set(en, 35);
en = _create_label(win, bx);
efl_text_set(en, "Hello, This Text Use The Font : Does_Not_Exists_Font_2 : Font Name");
efl_text_font_family_set(en, "Does_Not_Exists_Font_2");
efl_text_font_size_set(en, 35);
}
EAPI_MAIN void
efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
{
_gui_setup();
}
EFL_MAIN()
Reviewers: ali.alzyod, woohyun, bowonryu, cedric
Reviewed By: ali.alzyod
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11757
Ali Alzyod [Mon, 22 Jun 2020 07:54:51 +0000 (16:54 +0900)]
eina_strbuf: resolve segfault when replace used with read_only buffer
Summary: when eina_strbuf_replace is used by read_only buffer, this will cause segfault (access invalid memory)
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8757
Differential Revision: https://phab.enlightenment.org/D11989
AbdullehGhujeh [Mon, 22 Jun 2020 07:31:53 +0000 (16:31 +0900)]
Textblock : Fix cursor cluster movement when emoji at the line start
Summary:
if we have emoji only or emoji at line start we can move cursor using mouse click to be inside the emoji.
{
F3868502}
this should fix T8664
Test Plan:
#include <Elementary.h>
EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
Evas_Object *win;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = elm_win_util_standard_add("emoji-test", "emoji-test");
elm_win_autodel_set(win, EINA_TRUE);
/* and now just resize the window to a size you want. normally widgets
* will determine the initial size though */
evas_object_resize(win, 320, 320);
Evas_Object *box;
box = elm_box_add(win);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_win_resize_object_add(win, box);
Evas_Object *entry;
entry = elm_entry_add(box);
elm_entry_entry_set(entry, "☪️");
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(box, entry);
evas_object_show(entry);
evas_object_show(box);
/* and show the window */
evas_object_show(win);
elm_run(); /* and run the program now, starting to handle all
* events, etc. */
/* exit code */
return 0;
}
ELM_MAIN()
Reviewers: ali.alzyod, woohyun, bowonryu, zmike, bu5hm4n
Reviewed By: ali.alzyod
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8664
Differential Revision: https://phab.enlightenment.org/D11732
Myoungwoon Roy, Kim [Tue, 23 Jun 2020 08:29:35 +0000 (17:29 +0900)]
docs: Changes non public Tizen APIs in API reference to internal
Change-Id: I579e1af8a8006391bdb51fc63873ddb794cd7792
Shinwoo Kim [Tue, 23 Jun 2020 07:31:09 +0000 (16:31 +0900)]
ecore_wl2: update documentation
This patch is following doxygen rule.
*tizen_fix
Change-Id: I4d638465af923cad13de4d8110f286380c0efc51
Shinwoo Kim [Fri, 5 Jun 2020 02:48:59 +0000 (11:48 +0900)]
ecore_wl2: sync between UI and video
There is a requirement to sync of geometry changes such as move
and resize between UI and video. EFL could not take care of the
video geometry becasue it is handled by separated process.
This patch makes it possible by using a subsurface.
The video process will use the subsurface and surface commits
on this subsurface will be cached and only applied when the
parent surface's state is applied. In this case the parent
surface is working for UI.
*tizen_only
Change-Id: I287cb7bf7858ea5e3efc7f2bd32ce6279896586f
Shinwoo Kim [Fri, 19 Jun 2020 07:07:06 +0000 (16:07 +0900)]
elm_scroller: use region of proxy soruce for loop
Summary:
If size of elm_sclloer content is too big, then the proxy of
elm_scroller to show loop effect does not work. Because
evas_gl_common_image_surface_new does not allow
bigger size surface than max_texture_size.
Reviewers: Hermet, jsuya, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11996
Change-Id: I7c0e83e70f0ac11a413cc4ae0dd05fc35678ef80
Shinwoo Kim [Fri, 19 Jun 2020 05:08:23 +0000 (14:08 +0900)]
Revert "ui scroller: fix broken scroller loop"
This reverts commit
036423307c7eafec904d650a71ef64dac646151a.
The commit 76b89b8 "evas proxy: use part of source" was reverted.
So we need to revert "ui scroller: fix broken scroller loop" to
avoid build break.
New commit using evas_object_image_load_region_set will handle.
Change-Id: Ibed05025c028555dc490f7b0bdd707c104b17943
Shinwoo Kim [Fri, 19 Jun 2020 03:14:16 +0000 (12:14 +0900)]
Revert "evas proxy: use part of source"
This reverts commit
76b89b8e49f4b16ad490c04134a9bdddea27950f.
The commit was for fix an issue quickly.
Now we are able to rever the commit because
evas_object_image_load_region_set is available.
New commit using evas_object_image_load_region_set is comming.
Change-Id: I5f8cf04f92065db22342521b9102e6d26d5121d6
Boris Faure [Sat, 20 Jun 2020 10:37:56 +0000 (11:37 +0100)]
eina_unicode: have explicit type conversions
Summary:
Found by running terminology's tests with UBSAN:
include/eina-1/eina/eina_inline_unicode.x:
runtime error: implicit conversion from type 'char' of value
-62 (8-bit, signed) to type 'unsigned char' changed the value to 194
(8-bit, unsigned)
Reviewers: #reviewers, vtorri
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11972
Carsten Haitzler (Rasterman) [Thu, 18 Jun 2020 23:56:08 +0000 (00:56 +0100)]
efreet caceh - fix coverity report
fix CID 1429935
Vincent Torri [Thu, 18 Jun 2020 13:35:46 +0000 (14:35 +0100)]
meson: add Solaris support
Summary: Add Solaris support for meson
Test Plan: test on OpenIndiana
Reviewers: raster, bu5hm4n, stefan_schmidt
Reviewed By: raster, stefan_schmidt
Subscribers: alarcher, stefan_schmidt, bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11973
Vincent Torri [Tue, 16 Jun 2020 21:47:43 +0000 (21:47 +0000)]
tests: eina: fix ENOMEM message on Windows and solaris
On Windows and solaris the string associated to ENOMEM is "Not enough space"
Reviewed-by: Joรฃo Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11983
Carsten Haitzler (Rasterman) [Thu, 18 Jun 2020 10:35:44 +0000 (11:35 +0100)]
efreet - mtime 0 fix build on windows
Carsten Haitzler (Rasterman) [Thu, 18 Jun 2020 10:03:02 +0000 (11:03 +0100)]
efreetd - cache - add more statinfo work around 0 mtime distros
some distros 9notably in this case nixos) want to do reproducible
builds. to them this means going around setting mtime for all files to
0. this means efreetd not only thinks mtime is invalid/stupid (0 is
generally just that as midnight on jan 1 1970 is not exactly a
sensible dare for a modified timestamp of a file as no filesystem with
any sanity will have not been modified since that time), but it keeps
mtime at 0 even when things update. this totally breaks efreetd that
expects to find mtime increases over time as things change. it's
necessary because it has to perform a "are mu caches up to date" scan
of all file data it caches and it needs to know if it should rebuild
something based on this.
so this does a few things:
1. it makes mtime have to be an exact match to the cache, not cache
mtime >= file mtime. so any change forward or back is an inavlidation.
2. it now also uses ctime, mode, size, uid, gid, block count and if a
symlink, the sha1 of the symlink path in addition and any change to
these == invalid.
this adds a lot of code and changes how dirs get scanned a bit but it
means it can pick up changes on these 0 mtime distros.
interestingly the policy of mtime being 0 is to have a reprodcible fs
... but ctime still changes and is > 0, as does inode info, so it's
not actually possible to have it totally work... but they try still,
so this is a fix for that problem.
whilst i was doing thisi also noticed efreetd re-red dirs many times
due to icon theme inhritance. i also fixed that to do a LOT less
syscalls by only scanning a dir once as i was rejigging the scanning
code at the time anyway. this should optimize thr scan costs at
efreetd startup too.
@fix
@opt
Artur ลwigoล [Mon, 23 Mar 2020 11:33:52 +0000 (12:33 +0100)]
Revert "Revert "eldbus: change to idle_enterer from idler""
This reverts commit
2bcc7b48bf2f34a19b0712b030ab143d09dc30fb.
Handling DBus messages during idle carries the risk of starving the DBus
communication (and making the UI unresponsive if screen reader is used). This
is well-explained in the original (reverted) upstream commit: "If an
application does not give idle time, then the eldbus cannot have chance to
work."
Change-Id: Iffde1be749f5dba1ac1e8642c4ce4e3436770b5a
Stefan Schmidt [Tue, 9 Jun 2020 12:22:19 +0000 (14:22 +0200)]
benchmarks: eina: make sure we do not divide by zero
Make sure we do not divide by i if it is zero here.
CID: 1400768
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11956
Stefan Schmidt [Wed, 10 Jun 2020 10:30:48 +0000 (12:30 +0200)]
tests: eio: make sure we check return value
Make sure we fail the test if the call does not succeed.
CID: 1412364
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11963
Carsten Haitzler (Rasterman) [Wed, 17 Jun 2020 11:30:23 +0000 (12:30 +0100)]
evas gl common - remove comment - not valid anymore
Carsten Haitzler (Rasterman) [Wed, 17 Jun 2020 11:17:13 +0000 (12:17 +0100)]
gl common - actually allow vertex limits
fix non-commented out return that should have been commented out
Marcel Hollerbach [Wed, 17 Jun 2020 07:13:05 +0000 (09:13 +0200)]
efl_ui_widget: addition to the previous commit
in the previous commit we started to only receive the parent_obj from
the evas object when its not a widget. However, we still need to ensure
that the parent is equal to the current one in order to remove it when a
widget.
While this is one more call, the call to get the parent is not as
heavy as the data_get call, as this directly addresses a struct, and
does not read from a hash table.
This also fixes a test case failure.
Subhransu Mohanty [Wed, 17 Jun 2020 06:28:44 +0000 (06:28 +0000)]
elementary/perf: reduce number of efl_isa() call. in elementary test application efl_isa() shows up as hotsport during profiling so refactored the code to reduce redundant efl_isa() calls.
in genlist testcase the number of calls reduced by 30000.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Hermet Park <<hermetpark@gmail.com>>
Reviewed-by: Youngbok Shin <youngb.shin@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11984
Subhransu Mohanty [Wed, 17 Jun 2020 06:36:02 +0000 (06:36 +0000)]
elementary/perf:remove unnecessary elm_widget_is() check
As we always make sure the parent is a widget class we don't have to check anymore.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Hermet Park <<hermetpark@gmail.com>>
Differential Revision: https://phab.enlightenment.org/D11985
Taehyub Kim [Wed, 17 Jun 2020 12:17:23 +0000 (21:17 +0900)]
elm_image: remove the spaces and keep the indentation for elm_image_file_set()
Summary: there are wrong indentation in the elm_image_file_set, so removed the tabs
Reviewers: Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11988
Change-Id: I797d0861fff02a8b49aacc748cec9c7238926441
Taehyub Kim [Wed, 17 Jun 2020 12:04:08 +0000 (21:04 +0900)]
elm_image: keep backword compatibility for elm_image_file_set API when setting url file set twice
Summary:
when trying to set file using url path twice, the second api call's return value is EINA_FALSE
since image obj has already has same file path. After applying Efl.File interface, the behavior is changed compared to before.
both of the return values should be EINA_TRUE.
@fix
ex)
Eina_Bool ret1, ret2;
ret1 = elm_image_file_set(image, "http://sameurl/image.jpg", NULL);
ret2 = elm_image_file_set(image, "http://sameurl/image.jpg", NULL);
ret1 and ret2 should be EINA_TURE
Test Plan:
1. call elm_image_file_set api with same url path
2. see the return value
Reviewers: Hermet, kimcinoo, jsuya
Reviewed By: Hermet
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11979
Change-Id: If64d8d58424b559ea07dba14efb36996484c2fd5