platform/upstream/efl.git
4 years agoefl_ui_image: remove the unnecessary code in efl_file_unload 46/238746/1
Taehyub Kim [Fri, 17 Jul 2020 01:08:41 +0000 (10:08 +0900)]
efl_ui_image: remove the unnecessary code in efl_file_unload

Summary:
we don't need the image preload api call in efl_file_unload,
this make the unexpected SIG_LOAD_ERROR emit, when elm_image_memfile_set() is called.

@fix

Reviewers: Hermet, jsuya, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12056

Change-Id: I29415b8e95ed7be0bb5e3bc8a3f185ed0e69077a

4 years agoedje example - dont leak text
Carsten Haitzler (Rasterman) [Thu, 16 Jul 2020 20:00:36 +0000 (21:00 +0100)]
edje example - dont leak text

4 years agoedje: Avoid string duplication when possible.
Woochanlee [Thu, 16 Jul 2020 10:37:10 +0000 (11:37 +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.

Test Plan:
edje-suite (34/37 edje-suite                              OK       0.67 s)
elementary-test
app launching on enlightenment

Reviewers: raster, smohanty, Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12055

4 years agoedje_cc : resolve build warning
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

4 years agoelm: tests: fix typo in test name
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.

4 years agoci: travis: force meson version 0.54.3 as install for codecov
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.

4 years agoecore_wl2: support tizen_renderer protocol 15/238015/4
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

4 years agospec: disable avif evas image loader
Jongmin Lee [Wed, 15 Jul 2020 22:29:45 +0000 (07:29 +0900)]
spec: disable avif evas image loader

Change-Id: I8d0450b3cd3a9c3a4dd1539ec03202c9f8ede4c2

4 years agomeson: allow empty values in disabler/bindings array
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.

4 years agoRevert "Revert "ci: travis: make sure we disable avif loader by default in our jobs""
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.

4 years agoEvas: add avif evas loader and saver
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

4 years agoedje - fix edje_cc mis-re-iding images in image sets
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

4 years agofilter: make grayscale, inverse_color faster (GL) 74/236674/8
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

4 years agoRevert "ci: travis: make sure we disable avif loader by default in our jobs"
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.

4 years agoelm_code: cursor visbility fix.
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

4 years agoelm_code: on newline ensure line number visible.
Alastair Poole [Tue, 14 Jul 2020 10:11:16 +0000 (11:11 +0100)]
elm_code: on newline ensure line number visible.

@fix T2798

4 years agoRevert "Evas: add avif evas loader"
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...

4 years agoci: travis: make sure we disable avif loader by default in our jobs
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.

4 years agodocs: Correct the wrong API group name and typo in Evas, Eet, Eina, Eio and Elementary
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

4 years agoEvas: add avif evas loader
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

4 years agotests: remove popup test.
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.

4 years agodocs: Correct the wrong group name in access, mapbuf, object, popup and win 39/238239/1 accepted/tizen/unified/20200714.065706 submit/tizen/20200713.050659
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

4 years agoefl_ui_image: fix hit_rect geometry only if scale type is expand submit/tizen/20200709.223535
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

4 years agodocs: Correct the wrong API group name in Elementary and Change an invalid URL in...
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

4 years agoibox: Preview Theme Code
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

4 years agoRevert "edje: Avoid string duplication when possible."
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

4 years agoedje: Avoid string duplication when possible.
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

4 years agoevas_text: lazy loading color glyph images in RAM 70/238070/1
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

4 years agobenchmark: eina: remove outdated ecore_hash
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

4 years agowindows: Fix path for file sanitization
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

4 years agoFix typos - (Part #3)
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

4 years agoFix typos - (Part #2)
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

4 years agoefl_ui_image: fix hit_rect geometry 84/237884/1
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

4 years agoefl_ui_image: fix hit_rect geometry only if scale type is expand 43/237843/5
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

4 years agoProtect EINA_(UN)LIKELY with parenthesis around the expr accepted/tizen/unified/20200707.141004 submit/tizen/20200705.221213
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

4 years agoefl_ui_widget: Add exception handling for calloc
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

4 years agoefl_ui_widget: add color class update when the style is updated 74/237374/2
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>
4 years agogl_tbm: unregister log domain correctly 94/237594/3
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

4 years agoevas_common_privat: improve tiler merge flag
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

4 years agoMeson.build cleanup.
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

4 years agodocs: Correct the wrong API group name in Elementary 83/237483/2
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

4 years agoelc_naviframe: fix to show pushed item if top item is deleted 44/237544/1
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

4 years agodocs: Correct the wrong API group name in Edje and Elm_Box 48/237348/3 submit/tizen/20200630.100857
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

4 years agoecore-evas-wayland: Fix minor typo in error message submit/tizen/20200629.234316
Christopher Michael [Mon, 29 Jun 2020 13:01:54 +0000 (09:01 -0400)]
ecore-evas-wayland: Fix minor typo in error message

4 years agoecore_wl2_input: initializes code variable. 25/237325/1
Hosang Kim [Mon, 29 Jun 2020 06:01:15 +0000 (15:01 +0900)]
ecore_wl2_input: initializes code variable.

Change-Id: I99440ba38835c42829e8d50b736d0904c7d30adb

4 years agoecore evas wl - cnp - dont segv is data is null submit/tizen/20200629.001406
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.

4 years agoNative Windows: Eina: Resolve bad comparison while using windows strerror_s
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

4 years agoWindows: fix eina_file_map_new()
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

4 years agoFix eina file thread test on Windows
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

4 years agoeina_array: micro optimize eina_array_push
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

4 years agoFix typos - (Part #5)
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

4 years agoFix typos
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

4 years agodocs: Changes non public Tizen elementary APIs in API reference to internal 19/237019/4
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

4 years agoRevert "Efl.Gfx.Path: Change draw of a rounded rect from arc to quadratic" 13/237113/1
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

4 years agodoxygen: remove broken example images 12/236912/2
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)

4 years agoefl_check.h: Replace stack allocated array by heap allocated submit/tizen/20200623.220408
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

4 years agoecore-x vysnc - env var - fix typo
Carsten Haitzler (Rasterman) [Tue, 23 Jun 2020 13:00:48 +0000 (14:00 +0100)]
ecore-x vysnc - env var - fix typo

4 years agoecore wl - make comment note about allocating buffers
Carsten Haitzler (Rasterman) [Mon, 22 Jun 2020 12:12:23 +0000 (13:12 +0100)]
ecore wl - make comment note about allocating buffers

4 years agoeina_test_file.c: Do not test errno if the function doesn't fail
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

4 years agoGet rid of trailing whitespaces (14 / 14)
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

4 years agoGet rid of trailing whitespaces (13 / 14)
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

4 years agoGet rid of trailing whitespaces (12 / 14)
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

4 years agoGet rid of trailing whitespaces (11 / 14)
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

4 years agoGet rid of trailing whitespaces (10 / 14)
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

4 years agoGet rid of trailing whitespaces (9 / 14)
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

4 years agoGet rid of trailing whitespaces (8 / 14)
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

4 years agoGet rid of trailing whitespaces (7 / 14)
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

4 years agoGet rid of trailing whitespaces (6 / 14)
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

4 years agoGet rid of trailing whitespaces (5 / 14)
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

4 years agoGet rid of trailing whitespaces (4 / 14)
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

4 years agoGet rid of trailing whitespaces (3 / 14)
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

4 years agoGet rid of trailing whitespaces (2 / 14)
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

4 years agoGet rid of trailing whitespace (1 / 14)
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

4 years agoEfl.Gfx.Path: Change draw of a rounded rect from arc to quadratic
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

4 years agoeina_strbuf: introduce change last occurrence function
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

4 years agoelementary_test: remove leaked style
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

4 years agoeina_strbuf: if readonly strbuf is malloc, then it will stop being readonly
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

4 years agoeina_strbuf_manage_new: update documentation
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

4 years agoevas textblock : update font source when it set using font_source_set
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

4 years agoeina_strbuf: resolve segfault when replace used with read_only buffer
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

4 years agoTextblock : Fix cursor cluster movement when emoji at the line start
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, "&#x262a;&#xfe0f;");

     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

4 years agodocs: Changes non public Tizen APIs in API reference to internal 15/236915/2
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

4 years agoecore_wl2: update documentation 01/236901/1
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

4 years agoecore_wl2: sync between UI and video 87/235487/9 accepted/tizen/unified/20200624.130233 submit/tizen/20200623.055220
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

4 years agoelm_scroller: use region of proxy soruce for loop 52/236752/1
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

4 years agoRevert "ui scroller: fix broken scroller loop" 52/236652/2
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

4 years agoRevert "evas proxy: use part of source" 32/236632/2
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

4 years agoeina_unicode: have explicit type conversions accepted/tizen/unified/20200622.134453 submit/tizen/20200621.214257
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

4 years agoefreet caceh - fix coverity report
Carsten Haitzler (Rasterman) [Thu, 18 Jun 2020 23:56:08 +0000 (00:56 +0100)]
efreet caceh - fix coverity report

fix CID 1429935

4 years agomeson: add Solaris support
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

4 years agotests: eina: fix ENOMEM message on Windows and solaris
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

4 years agoefreet - mtime 0 fix build on windows
Carsten Haitzler (Rasterman) [Thu, 18 Jun 2020 10:35:44 +0000 (11:35 +0100)]
efreet - mtime 0 fix build on windows

4 years agoefreetd - cache - add more statinfo work around 0 mtime distros
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

4 years agoRevert "Revert "eldbus: change to idle_enterer from idler"" 49/227549/3
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

4 years agobenchmarks: eina: make sure we do not divide by zero accepted/tizen/unified/20200618.130024 submit/tizen/20200617.214046
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

4 years agotests: eio: make sure we check return value
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

4 years agoevas gl common - remove comment - not valid anymore
Carsten Haitzler (Rasterman) [Wed, 17 Jun 2020 11:30:23 +0000 (12:30 +0100)]
evas gl common - remove comment - not valid anymore

4 years agogl common - actually allow vertex limits
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

4 years agoefl_ui_widget: addition to the previous commit
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.

4 years agoelementary/perf: reduce number of efl_isa() call. in elementary test application...
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