platform/upstream/efl.git
4 years agotests - elm spinner - use proper elm enum - warning fix
Carsten Haitzler (Rasterman) [Mon, 24 Aug 2020 21:23:29 +0000 (22:23 +0100)]
tests - elm spinner - use proper elm enum - warning fix

4 years agotests - elm slider - fix possile use of uninit var warning
Carsten Haitzler (Rasterman) [Mon, 24 Aug 2020 21:22:17 +0000 (22:22 +0100)]
tests - elm slider - fix possile use of uninit var warning

4 years agoecore con - curl - fix error map to map right enum
Carsten Haitzler (Rasterman) [Mon, 24 Aug 2020 20:28:16 +0000 (21:28 +0100)]
ecore con - curl - fix error map to map right enum

this would print the wrong error to eina log - this fixes this

@fix

4 years agoevas_font_query: add Use parentheses within macros
Ali Alzyod [Tue, 25 Aug 2020 10:15:08 +0000 (10:15 +0000)]
evas_font_query: add Use parentheses within macros

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

4 years agowidget/entry: add an object pointer which store an actual content object's address 07/242207/2
Youngbok Shin [Tue, 25 Aug 2020 04:28:10 +0000 (13:28 +0900)]
widget/entry: add an object pointer which store an actual content object's address

elm_entry's resize object is changed when its scrollable mode is changed.
For accessing its actual text content, it needs to store its content object's address.
It is added for fixing issue of edje_object_part_text_valign_set/get functions on
scrollable elm_entry.

@tizen_fix

Change-Id: Ia85f43d461e41e19436cf356b39a02febfc8261e

4 years agospec: bump version for 1.25.0
Jongmin Lee [Mon, 24 Aug 2020 22:00:21 +0000 (07:00 +0900)]
spec: bump version for 1.25.0

Change-Id: I37dcd89123eb1a26b71d0410372fe7b6bea68933

4 years agoeina file - fd close - handle fbsd 11 syscall abi as it broke in 12
Carsten Haitzler (Rasterman) [Mon, 24 Aug 2020 19:07:56 +0000 (20:07 +0100)]
eina file - fd close - handle fbsd 11 syscall abi as it broke in 12

4 years agorelease: Update NEWS and bump version for 1.25.0-alpha1 release
Stefan Schmidt [Mon, 24 Aug 2020 09:29:35 +0000 (11:29 +0200)]
release: Update NEWS and bump version for 1.25.0-alpha1 release

4 years agoAdded evas-clipping example 48/241348/7
Michal Maciola [Mon, 17 Aug 2020 09:28:39 +0000 (11:28 +0200)]
Added evas-clipping example

Ranamed to vg convention

Change-Id: I06789e46d82fc49399f068169de57c843cdd022c

4 years agoevas_engine: remove a dead code and sync with upstream code 32/242132/1
Youngbok Shin [Mon, 24 Aug 2020 10:31:30 +0000 (19:31 +0900)]
evas_engine: remove a dead code and sync with upstream code

@fix

Change-Id: Ie5f79e786cb842f98e88d8d97afcc3002d00668a

4 years agoecore_wl2_display: move wl_display_dispatch_pending before condition check. accepted/tizen/unified/20200824.134432 submit/tizen/20200823.213148
Hosang Kim [Wed, 19 Aug 2020 11:50:31 +0000 (11:50 +0000)]
ecore_wl2_display: move wl_display_dispatch_pending before condition check.

Sometimes display ref count is not zero after wl_display_dispatch_pending.

For example, wl_data_source_listener's callback is called by wl_display_dispatch_pending.
Display ref count is not zero but display is cleaned up, it makes double free corruption.

Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D12109

4 years agoeina file - fix getdents64 on older glibc's and use raw syscall
Carsten Haitzler (Rasterman) [Fri, 21 Aug 2020 11:48:32 +0000 (12:48 +0100)]
eina file - fix getdents64 on older glibc's and use raw syscall

4 years agoefl/ecore exe - more paranoia - block sig handlers between fork + exec
Carsten Haitzler (Rasterman) [Fri, 21 Aug 2020 08:06:34 +0000 (09:06 +0100)]
efl/ecore exe - more paranoia - block sig handlers between fork + exec

in theory signal handlers could kick in after fork and before exec...
so block them until we're exec'd or exited so they don't change any
program state.

4 years agoeina - eina_file_close_from - handle coverity theory that closes change
Carsten Haitzler (Rasterman) [Fri, 21 Aug 2020 07:50:05 +0000 (08:50 +0100)]
eina - eina_file_close_from - handle coverity theory that closes change

this won't happen as the setup should not have the # of fd's found in
2st pass and 2nd pass for a dirfd change as nothing should interfere.
comment to that effect and add a paranoid change num_closes to the
number found

4 years agoAdded evas-tests example 78/241378/5
Michal Maciola [Thu, 20 Aug 2020 08:57:21 +0000 (10:57 +0200)]
Added evas-tests example

evas-tests.c renamed to evas-multiple-shapes.c

Ranamed to vg convention

Change-Id: I81887ef495597c0aa061b5adf3a5b2f1e788607a

4 years agoAdded evas-lines example 81/241381/9
Michal Maciola [Wed, 8 Jul 2020 10:40:26 +0000 (12:40 +0200)]
Added evas-lines example

Added welcome message with commands list

Ranamed to evas-vg-line

Change-Id: I730f8da9aaa5a54029a072c379463bce36ed1012

4 years agoconfs: Add OpenBSD Build Helper Scripts.
Alastair Poole [Thu, 20 Aug 2020 09:05:35 +0000 (10:05 +0100)]
confs: Add OpenBSD Build Helper Scripts.

As with E, add one for OpenBSD. Makes things easier in many
respects.

4 years agoevas - fix deadlock with sw async rendering calling cbs in post flush
Carsten Haitzler (Rasterman) [Mon, 17 Aug 2020 12:25:00 +0000 (13:25 +0100)]
evas - fix deadlock with sw async rendering calling cbs in post flush

post flush doesnt cleanr evas->rendering until after it calls post
flush callbacks. any post flush callback that neexts so access data
and block waiting for an async render tyo be done thus blocks forever.

this adds a 0.2 sec timeout in case so we at last march on with
hiccups instead of totally stalling AND clears evas->rendering before
calling the callbacks.

@fix

4 years agoecore - don't do anything with heap between fork and exec
Carsten Haitzler (Rasterman) [Fri, 14 Aug 2020 14:22:17 +0000 (15:22 +0100)]
ecore - don't do anything with heap between fork and exec

this avoids a possibgle deadlock if a malloc impl is holding a lock
and has not released it at the time we fork.

@fix

4 years agoecore x - go back to vsync thread. this will be more reliable
Carsten Haitzler (Rasterman) [Fri, 14 Aug 2020 09:10:18 +0000 (10:10 +0100)]
ecore x - go back to vsync thread. this will be more reliable

while it requires an extra wakeup from vsync thread -> e and this adds
a bit of jitter, it's mroe reliable in the face of "missed a frame"
timings and doesnt degrade as badly.

4 years agoeina_test_lock.c: Implement clock_gettime for Windows
Wander Lairson Costa [Tue, 23 Jun 2020 20:20:14 +0000 (20:20 +0000)]
eina_test_lock.c: Implement clock_gettime for Windows

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D12023

4 years agoeina: Close file in unlink test
João Paulo Taylor Ienczak Zanette [Sat, 1 Aug 2020 15:11:07 +0000 (15:11 +0000)]
eina: Close file in unlink test

At least on Windows (didn't have the time to test on Linux yet),
running tests, even if they passed, there would be an Eina error on logs
pointing that a temporary file wasn't closed:

```
ERR:eina_file ../src/lib/eina/eina_file_common.c:1137 eina_file_shutdown() File [C:/Users/joao_/AppData/Local/Temp/aaaa_file_test_EBpVea] still open 1 times !
```

In the end, it was the `eina_file_test_unlink` that would create a temporary
file but never close it, being caught only by `eina_shutdown()`.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D12062

4 years agomeson: added thorvg build option. 46/240746/2
Michal Szczecinski [Fri, 7 Aug 2020 06:47:15 +0000 (08:47 +0200)]
meson: added thorvg build option.

Added thorvg build option controlled by param in meson_options.txt file.
When meson is used HAVE_THORVG is defined and shall be used in
efl_canvas_vg_* implementation to switch between ector and thorvg

Change-Id: I52e82d3a7e99f1f12616e0ed7805072a7dc74425

4 years agoeet test: use eina_file_mkstemp, fix include for vc++
Vincent Torri [Tue, 18 Aug 2020 05:04:09 +0000 (05:04 +0000)]
eet test: use eina_file_mkstemp, fix include for vc++

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/D12108

4 years agoeet: Fix 'No OPENSSL_Applink' error message.
João Paulo Taylor Ienczak Zanette [Mon, 10 Aug 2020 23:08:42 +0000 (23:08 +0000)]
eet: Fix 'No OPENSSL_Applink' error message.

In some systems (such as Windows), OpenSSL raises an error about "No Applink"
(see ["I've compiled a program under Windows and it crashes: why?" in OpenSSL
FAQ](https://www.openssl.org/docs/faq.html#PROG3)). Including only
openssl/applink.c didn't work, so the solution was to replace `FILE*`
interfaces with OpenSSL's BIO API which also contains file operations.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12103

4 years agoAdd example of efl_canvas_vg_node raise/lower/stack_above/stack_below 84/240484/5
Patryk Kaczmarek [Thu, 6 Aug 2020 14:14:36 +0000 (16:14 +0200)]
Add example of efl_canvas_vg_node raise/lower/stack_above/stack_below

Change-Id: I88c7de6a8e9455ffaa6e814d3babc786cfb6cb5f

4 years agoEfl Canvas Text : canvas textblock changed not fired for shadow format (style_apply)
AbdullehGhujeh [Tue, 18 Aug 2020 09:10:04 +0000 (18:10 +0900)]
Efl Canvas Text : canvas textblock changed not fired for shadow format (style_apply)

Summary:
If shadow format changed using style_apply , the event EFL_CANVAS_TEXTBLOCK_EVENT_CHANGED will not be fired.
also added tests for it.

Reviewers: ali.alzyod, woohyun

Reviewed By: ali.alzyod

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoevas_object_textblock: utf8_to_markup support all escapse chars
Ali Alzyod [Tue, 18 Aug 2020 08:34:02 +0000 (17:34 +0900)]
evas_object_textblock: utf8_to_markup support all escapse chars

Summary: update evas_textblock_text_utf8_to_markup to support all escape characters

Test Plan:
```

EAPI_MAIN int
elm_main(int argc, char **argv)
{
   Evas_Object *win,*textblock;

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   win = elm_win_util_standard_add("Main", "App");
   elm_win_autodel_set(win, EINA_TRUE);

  textblock = evas_object_textblock_add(win);
  char * aaa = evas_textblock_text_utf8_to_markup(textblock,"A<<>>\"A\'\tA");
  // aaa ==  "A&lt;&lt;&gt;&gt;&quot;A&apos;<tab/>A";
   evas_object_size_hint_weight_set(textblock,EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(textblock,EVAS_HINT_FILL,EVAS_HINT_FILL);
   evas_object_show(textblock);

   evas_object_move(textblock,0,0);
   evas_object_resize(textblock,320,480);
   evas_object_resize(win,320,480);

   evas_object_show(win);
   elm_run();

   return 0;
}
ELM_MAIN()

```

Reviewers: lauromoura, CHAN, woohyun, bu5hm4n, bowonryu, tasn, herdsman

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

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

Change-Id: Icc09bd574f122aeb4847351d1b612eb7bd6a1f11

4 years agoadded example of evas_object_show/hide() for vg shapes 05/240705/5
Piotr Kalota [Tue, 4 Aug 2020 10:00:16 +0000 (12:00 +0200)]
added example of evas_object_show/hide() for vg shapes

Change-Id: I78679b7e1d3f7ffe29ab9e8642f131611e15b322

4 years agoadded example for evas_vg_shape_stroke_join_set() 04/240704/5
p.kalota [Fri, 24 Jul 2020 09:04:39 +0000 (11:04 +0200)]
added example for evas_vg_shape_stroke_join_set()

Change-Id: I8cbaaf0d2ced04012b6efa9c2d70ddc33491af1c

4 years agoadded example for evas_vg_shape_current_ctrl_get() 58/240758/6
p.kalota [Mon, 27 Jul 2020 13:07:56 +0000 (15:07 +0200)]
added example for evas_vg_shape_current_ctrl_get()

Change-Id: Ie6710a2ff58faea84d0686a26a5e41aa38b3692c

4 years agoevas_textblock: myanmar script rendering with e vowel. 43/241143/1
Ali Alzyod [Tue, 18 Aug 2020 04:28:56 +0000 (13:28 +0900)]
evas_textblock: myanmar script rendering with e vowel.

Summary: Resolve rendering e vowel (0x1031) with Myanmar(Burmese) with zero width non joiner (0x200C)

Test Plan: ninja test

Reviewers: woohyun, bowonryu

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

Change-Id: Id0d9932989a5b54fbf8b9c4c2dceb9697bf81331

4 years agodocs: Correct the wrong API group name in elm_win and elm_glview accepted/tizen/unified/20200820.034628 submit/tizen/20200817.223215
Myoungwoon Roy, Kim [Tue, 4 Aug 2020 05:36:54 +0000 (05:36 +0000)]
docs: Correct the wrong API group name in elm_win and elm_glview

I found wrong API group name in elm_win and elm_glview and fixed them.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12075

4 years agoeina: Use INVALID_FILE_ATTRIBUTES instead of magic number
João Paulo Taylor Ienczak Zanette [Wed, 12 Aug 2020 07:23:16 +0000 (07:23 +0000)]
eina: Use INVALID_FILE_ATTRIBUTES instead of magic number

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D12106

4 years agoecore_x: Add mode flags new in xrandr 1.2.
Alastair Poole [Sat, 15 Aug 2020 14:52:56 +0000 (15:52 +0100)]
ecore_x: Add mode flags new in xrandr 1.2.

4 years agoExample of drawing star shape by using evas_vg_shape_*() API 03/240703/4
p.kalota [Thu, 23 Jul 2020 12:41:57 +0000 (14:41 +0200)]
Example of drawing star shape by using evas_vg_shape_*() API

Change-Id: Icf44c4836114078e9fd5cfe67aadcbf2bcf5ff99

4 years agoadded example for evas_vg_shape_interpolate() 01/240701/4
Piotr Kalota [Mon, 10 Aug 2020 13:53:37 +0000 (15:53 +0200)]
added example for evas_vg_shape_interpolate()

Change-Id: I27821c27a34f6d974dcd796f6e227a061736b3fb

4 years agoadded example for evas_vg_shape_equal_commands() 97/240697/5
p.kalota [Mon, 27 Jul 2020 08:23:14 +0000 (10:23 +0200)]
added example for evas_vg_shape_equal_commands()

Change-Id: Iab27b8044eb5c87e531c6181023535949a3ee1b5

4 years agoadded example for evas_vg_shape_stroke_cap_set() 95/240695/3
Piotr Kalota [Mon, 10 Aug 2020 13:11:09 +0000 (15:11 +0200)]
added example for evas_vg_shape_stroke_cap_set()

Change-Id: Ie9d567c3401445741d1fbf7da5f8ee8f2e0bff12

4 years agoevas/canvas/vg: added gradient example 71/240771/3
Mateusz Palkowski [Mon, 10 Aug 2020 08:39:04 +0000 (10:39 +0200)]
evas/canvas/vg: added gradient example

Change-Id: Id7f929d5fda53da8d780548434a58b562cbf0a76

4 years agoevas/canvas/vg: added cubic bezier example 70/240770/3
Mateusz Palkowski [Fri, 24 Jul 2020 12:52:22 +0000 (14:52 +0200)]
evas/canvas/vg: added cubic bezier example

Change-Id: I092e5df8841a44b03efac9e7f2833bbf3681518d

4 years agoevas/canvas/vg: added shape reset example 69/240769/3
Mateusz Palkowski [Fri, 24 Jul 2020 11:39:15 +0000 (13:39 +0200)]
evas/canvas/vg: added shape reset example

Change-Id: I403a8d9b5b964ded7aaee73b9e9fc8db0950d6d1

4 years agoevas/canvas/vg: added shape duplication example 68/240768/3
Mateusz Palkowski [Fri, 24 Jul 2020 08:19:51 +0000 (10:19 +0200)]
evas/canvas/vg: added shape duplication example

Change-Id: I932d6e21631779cf182bdb47f4fbb35788a5bd08

4 years agoevas/canvas/vg: added dash example 63/240763/3
Mateusz Palkowski [Thu, 23 Jul 2020 08:59:27 +0000 (10:59 +0200)]
evas/canvas/vg: added dash example

Change-Id: Id2d2267629bf1c69ce847fa811b8e6dc9de45114

4 years agoevas/canvas/vg: added circles example. 96/240696/3
Mateusz Palkowski [Wed, 22 Jul 2020 13:17:34 +0000 (15:17 +0200)]
evas/canvas/vg: added circles example.

Change-Id: Ief878dc3d5503700274a3ee3139a2a3662937535

4 years agoector: remove include path in pc file 20/240820/2
Jongmin Lee [Wed, 12 Aug 2020 00:03:45 +0000 (09:03 +0900)]
ector: remove include path in pc file

ector.pc defines Cflags as '-I${includedir}/ector-1'. However, there are no
files in ector-1 directory. The recent version of cmake checks whether the include path
contains files or not. If there are no files, it stops compilation with errors.
Since ector does not expose any header files, it should not define any include path.

Change-Id: I15ba71a1dbdf246e5637b51c6bcd2a0d992dcf37

4 years agoedje - calce - really respect max image size for img sets
Carsten Haitzler (Rasterman) [Thu, 13 Aug 2020 16:41:36 +0000 (17:41 +0100)]
edje - calce - really respect max image size for img sets

when you have an image set for an image it wouldnt actually respect
image max size and not select something bigger than it.. now it will

@fix

4 years agoevas examples: remove unecessary beta tag. 67/240967/1
Hermet Park [Thu, 13 Aug 2020 08:01:32 +0000 (17:01 +0900)]
evas examples: remove unecessary beta tag.

vector legacy apis have been officially released.
it doesn't need beta tag anymore.

Change-Id: Id90eebe0e96b21de1632bef625ce3152c7b313ca

4 years agoeo: set idx on exit to 1 not to 0
Marcel Hollerbach [Mon, 10 Aug 2020 08:43:18 +0000 (10:43 +0200)]
eo: set idx on exit to 1 not to 0

if this is set to 0 the next iteration in the upper frame event would
decrement the 0 again leading to a overflow making the iteration and
callback array overflow.

Long story short: set ifx to 1 to prevent overflow, test added.

fixes T8787

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

4 years agoecore input - make an unsupported joystick a warn not an err...
Carsten Haitzler (Rasterman) [Tue, 11 Aug 2020 12:49:30 +0000 (13:49 +0100)]
ecore input - make an unsupported joystick a warn not an err...

4 years agoelm_code: Selection start (with keyboard) fix.
Alastair Poole [Mon, 10 Aug 2020 13:15:08 +0000 (14:15 +0100)]
elm_code: Selection start (with keyboard) fix.

When starting a selection we were jumping two characters. This
change resolves that.

4 years agoelm_code: Always render N new lines (buffer).
Alastair Poole [Mon, 10 Aug 2020 10:17:32 +0000 (11:17 +0100)]
elm_code: Always render N new lines (buffer).

If we don't have a buffer here you CAN lose the race when scrolling.
As there is a check later in the flow, we can just use a padding
of 64 instead of checking the range. This ensures that scrolling is
smooth and content is always rendered throughout an aggressive
scroll.

4 years agoevil: Remove OS version check accepted/tizen/unified/20200810.123126 submit/tizen/20200809.214919
João Paulo Taylor Ienczak Zanette [Fri, 7 Aug 2020 19:08:48 +0000 (20:08 +0100)]
evil: Remove OS version check

Summary:
Current version checking is done with GetVersion, which is now deprecated and issues the warning:

```
'GetVersion' is deprecated [-Wdeprecated-declarations]
```

The first approach of this commit was to replace GetVersion call with the newer (and more reliable) `IsWindowsVistaOrGreater()` from versionhelpers.h, but nowadays it makes more sense to actually not even make that check, since it is more than unlinkely to happen that someone tries to compile/run EFL in Windows XP.

Reviewers: vtorri, stefan_schmidt, raster

Reviewed By: vtorri, raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoefl_ui_focus_manager: reduce the amount of relying on events 08/240508/1
Marcel Hollerbach [Wed, 29 Jul 2020 10:01:43 +0000 (12:01 +0200)]
efl_ui_focus_manager: reduce the amount of relying on events

with this commit we are not replying on event invocations anymore, but
rather on direct flag observation in the focus manager itself.

This reduces the amount of events that are emitted as a consequence to
elements beeing marked dirty segnificantly.

startup time of elementary_test goes from 0.50 to 0.46s.

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

Change-Id: Ie90922fcac2cdcf22bac8bd3071a215853d7057f

4 years agoeo: evalulate special counts earlier
Marcel Hollerbach [Fri, 31 Jul 2020 08:50:04 +0000 (10:50 +0200)]
eo: evalulate special counts earlier

we have these special counts which are > 0 when there is a callback
subscribed. THey are currently evalulated in _callback_call. However,
we can also skip the entire call from inside eo_base_class as we are
having the fields there as well.

This way we are skipping the obj pointer lookup and vtable lookup.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D12079

4 years agoeo: event callback call optimization
Marcel Hollerbach [Wed, 5 Aug 2020 08:45:29 +0000 (10:45 +0200)]
eo: event callback call optimization

a little overfiew to how eos event emission is working:
- In eo there are 2 types of events restart events and normal events.
  Normals are *always* emitted from callback_max to 0
  Restarts are emitted from the previous emissions current idx to 0. The
  previous emission will stop then
- To keep track of the previous event emissions for restarts there was
  an eina inlist.
- To keep track of other things in eo, there was an additional eo event
  stack frame (newly inserted events etc. etc.)

This commit now uses this event stack frame for implementing the details
about the restart events. This has the advatage that every
efl_object_data contains one byte less, and the up to date keeping of
the id's in the restart infrastructure is not needed anymore, making the
whole event emission code less instructions and faster.

How this now works:
- Every emission has a event emission frame, when the emission starts,
  the frame is added, next points to the next older event emission. In
  this event stack frame we are storing the current idx, the description
  and a few other things that are not really relevant at this point.
- when a restart event is started, this event stack is searched from the
  current frame up to the next one featuring the same event description.
  The event frame stack is then remembered, if the event emission is
  done, the current idx (normally 0 or something higher when callback
  was stopped) is then copyied back to the earlier frame.
- Based on the nature of the event frame stacks, the idx is updated
  every iteration. And for the restart events, we only need to know the
  next, which removes the need of permanently updating the idx in the
  current stack.
- The event frame stack is not allocated on the heap, hence more things
  in there does not matter at all.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D12097

4 years agoecore_wl2: fix mismatched synchronized mode. 18/240418/1
Seunghun Lee [Thu, 6 Aug 2020 16:04:06 +0000 (01:04 +0900)]
ecore_wl2: fix mismatched synchronized mode.

A sub-surface is initially in the synchronized mode.

Change-Id: Ic420cf7dd9edfc1761910afc87dac9c6c64d360d

4 years agoefl_canvas: fix a potentional error of null deref
Wonki Kim [Wed, 5 Aug 2020 06:35:10 +0000 (06:35 +0000)]
efl_canvas: fix a potentional error of null deref

this is a patch to fix a potentional error by null dereferencing.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12093

4 years agoelm_access: fix a potentional error of null deref
Wonki Kim [Wed, 5 Aug 2020 08:03:02 +0000 (17:03 +0900)]
elm_access: fix a potentional error of null deref

Summary: this is a patch to fix a potentional error by null dereferencing.

Reviewers: jsuya, kimcinoo, bu5hm4n

Reviewed By: jsuya

Subscribers: kimcinoo, bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

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

4 years agoevas/engine: fix a potentional error of null deref
Wonki Kim [Wed, 5 Aug 2020 08:02:13 +0000 (17:02 +0900)]
evas/engine: fix a potentional error of null deref

Summary: this is a patch to fix a potentional error by null dereferencing.

Reviewers: jsuya, bu5hm4n, Hermet

Reviewed By: jsuya, bu5hm4n

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

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

4 years agoedje: fix a potentional error of null deref
Wonki Kim [Wed, 5 Aug 2020 06:18:34 +0000 (15:18 +0900)]
edje: fix a potentional error of null deref

Summary: this is a patch to fix a potentional error by null dereferencing.

Reviewers: jsuya, bu5hm4n, Hermet

Reviewed By: jsuya

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoedje_edit: fix a potentional error of null deref
Wonki Kim [Wed, 5 Aug 2020 06:14:24 +0000 (15:14 +0900)]
edje_edit: fix a potentional error of null deref

Summary: this is a patch to fix a potentional error by null dereferencing.

Reviewers: jsuya, bu5hm4n, cedric, Hermet

Reviewed By: jsuya

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoedje_edit: add null check for return of eina_hash_find
Bowon Ryu [Wed, 5 Aug 2020 06:09:05 +0000 (15:09 +0900)]
edje_edit: add null check for return of eina_hash_find

Summary: to prevent null pointer dereference

Test Plan: N/A

Reviewers: cedric, jsuya

Reviewed By: jsuya

Subscribers: #reviewers, #committers

Tags: #efl

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

4 years agoembryo_cc: ++safty code
Shinwoo Kim [Wed, 5 Aug 2020 05:52:50 +0000 (14:52 +0900)]
embryo_cc: ++safty code

Summary:
This patch is increasing safty code by handling following case.

sc_compile > OH!! there is uninitialized loacal variable "outfname"!! >
setopt > about > longjmp > setjmp returns 3 > goto cleanup >

then uninitialized data is read from local variable "outfname".

Reviewers: raster, Hermet, jsuya, herb

Reviewed By: jsuya

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoevas_filter: Add null check for instruction
JunsuChoi [Wed, 5 Aug 2020 05:45:22 +0000 (14:45 +0900)]
evas_filter: Add null check for instruction

Summary:
Add a null check for cases where the param passed
from the filter instruction can be a null pointer.

Test Plan: N/A

Reviewers: kimcinoo, Hermet

Subscribers: #reviewers, #committers, cedric

Tags: #efl

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

4 years agoefl_ui_textbox: preserve changing user color set
Ali Alzyod [Wed, 5 Aug 2020 04:33:03 +0000 (13:33 +0900)]
efl_ui_textbox: preserve changing user color set

Summary:
setting color inside the constructor call will be override in theme apply because it happen later.
txt = efl_add(EFL_UI_TEXTBOX_CLASS, win,
               efl_text_color_set(efl_added, 0, 255, 0, 255));

Now we will preserve user choice, to not change it during theme apply.

Test Plan: ninja test

Reviewers: woohyun, bu5hm4n, zmike, segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoevas_textblock: enhance cursor event submitting during markup_set/text_set
Ali Alzyod [Wed, 5 Aug 2020 04:09:00 +0000 (13:09 +0900)]
evas_textblock: enhance cursor event submitting during markup_set/text_set

Summary:
Enhance text cursor events submitting:
1- Submit events only for changed cursors.
2- Reduce code complexity for cursor change.
3- Add test case for cursor event change

Reviewers: woohyun, zmike, bu5hm4n

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoelm_entry/efl.ui.textbox: use common key shortcuts
Ali [Wed, 5 Aug 2020 02:32:11 +0000 (11:32 +0900)]
elm_entry/efl.ui.textbox: use common key shortcuts

Summary:
**key** value comes from keyboard down callbacks are common, regardless of language/layout but **keyname** is dependent on layout(in X11, in Wayland Can not be produced).
This common fix for both.

For example if keyboard layout in arabic then:
Ctrl+A  will not work (in X11)

This one enhances D11606

Reviewers: woohyun, bu5hm4n, zmike

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoevas_textblock: enhance escape character handling
Ali Alzyod [Wed, 5 Aug 2020 02:27:03 +0000 (11:27 +0900)]
evas_textblock: enhance escape character handling

Summary:
-Lazy initialization for html escapes lists
-Lower memory consumtion for escapes lists
-Simplify code maintenance by sorting lists on runtime, new items donot need to respect sort order(run time will handle it)

Reviewers: woohyun, bowonryu, cedric, tasn

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoefl.ui.textbox: Keyboard Enter will add paragraph separator
ali [Wed, 5 Aug 2020 02:22:14 +0000 (11:22 +0900)]
efl.ui.textbox: Keyboard Enter will add paragraph separator

Summary:
efl.ui.textbox: Keyboard Enter will add paragraph separator and \n

because of D9064 Textbox multiline can work with paragraph separator

Reviewers: woohyun, segfaultxavi, bu5hm4n, zmike

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoefl_ui_timepicker: Add null check for efl_text_get
JunsuChoi [Tue, 4 Aug 2020 11:44:13 +0000 (11:44 +0000)]
efl_ui_timepicker: Add null check for efl_text_get

Prevent null access of the string passed from efl_text_get.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12085

4 years agoevas: fix a potentional error of null deref
Wonki Kim [Tue, 4 Aug 2020 11:45:03 +0000 (11:45 +0000)]
evas: fix a potentional error of null deref

this is a patch to fix a potentional error by null dereferencing.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12089

4 years agoelput - support libelogind.so.0 as well as libelogind-shared.so.0
Carsten Haitzler (Rasterman) [Tue, 4 Aug 2020 08:40:39 +0000 (09:40 +0100)]
elput - support libelogind.so.0 as well as libelogind-shared.so.0

for gentoo...
@fix

4 years agoedje_embryo: fix memory leak in ALLOC_COPY_DESC
Jaehyun Cho [Tue, 4 Aug 2020 06:11:35 +0000 (15:11 +0900)]
edje_embryo: fix memory leak in ALLOC_COPY_DESC

Summary:
If memory allocation fails in ALLOC_COPY_DESC, then the allocated memory
is not free.
To fix this memory leak, memory allocation of Edje_Real_Part_State is
done prior to ALLOC_COPY_DESC.

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoembryo: fix a integer(cell) overflow problem
Youngbok Shin [Tue, 4 Aug 2020 05:47:14 +0000 (14:47 +0900)]
embryo: fix a integer(cell) overflow problem

Summary:
The most of functions for embryo based on cell(int) types.
addvariable(), defsymbol(), modstk() and etc.
Because of this, if embryo script has a really big(INT_MAX / 4) stack variable,
integer overflow problem has been happened.
@fix

Test Plan:
Put a script in your EDC like the following code.
Build it and try to access the variable.
Or check the writen HEX value by embryo_cc.

script {
   // It's size is 1,000,000,000.
   // Remember, INT_MAX is 2,147,483,647.
   new my_big_variable[1000000000];
   ...
}

Reviewers: cedric, woohyun, raster, eunue, SanghyeonLee

Reviewed By: eunue, SanghyeonLee

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoelm : fix return of gengrid item swap anim to prevent animation memory leak. 64/240164/1
SangHyeon Jade Lee [Tue, 4 Aug 2020 05:18:01 +0000 (14:18 +0900)]
elm : fix return of gengrid item swap anim to prevent animation memory leak.

Summary:
this is memory leak fix on gengrid item move.
when animation reached 1.0, it finish all animation and returns EINA_FALSE to delete current animation.

Test Plan: N/A

Reviewers: eagleeye

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

Change-Id: I564ca939b96ab5fbe0cbc8784f32aab533f644ec

4 years agoedje_embryo: fix null pointer dereference in ALLOC_COPY_DESC
Jaehyun Cho [Mon, 3 Aug 2020 11:22:08 +0000 (20:22 +0900)]
edje_embryo: fix null pointer dereference in ALLOC_COPY_DESC

To fix null pointer dereference in ALLOC_COPY_DESC, allocated variable
"new" is checked.

4 years agoedje_embryo: fix to use parameter of macro ALLOC_COPY_DESC
Jaehyun Cho [Mon, 3 Aug 2020 10:22:27 +0000 (19:22 +0900)]
edje_embryo: fix to use parameter of macro ALLOC_COPY_DESC

The parameter "To" of macro ALLOC_COPY_DESC is not used.
To use the parameter "To", "d" is replaced to "To".

4 years agoevas_gl_core: fix memory leak of EVGL_Resource
Jaehyun Cho [Mon, 3 Aug 2020 06:54:35 +0000 (15:54 +0900)]
evas_gl_core: fix memory leak of EVGL_Resource

If eng_data is NULL and rsc is not NULL in _internal_resources_destroy,
then the allocated EVGL_Resource rsc is not free.

To resolve this memory leak, eng_data and rsc are checked separately.

4 years agoefl ui image - fix scal to fill - broken with non-rect src images accepted/tizen/unified/20200803.122206 submit/tizen/20200802.221805
Carsten Haitzler (Rasterman) [Sun, 2 Aug 2020 15:26:09 +0000 (16:26 +0100)]
efl ui image - fix scal to fill - broken with non-rect src images

@fix

4 years agoelua: add searchpath impl for 5.1 compat
Daniel Kolesa [Fri, 31 Jul 2020 16:54:04 +0000 (18:54 +0200)]
elua: add searchpath impl for 5.1 compat

4 years agoelua: fix elua_register with 5.1
Daniel Kolesa [Fri, 31 Jul 2020 16:37:03 +0000 (18:37 +0200)]
elua: fix elua_register with 5.1

4 years agoelua: do not link to cffi, load the module instead
Daniel Kolesa [Fri, 31 Jul 2020 16:21:15 +0000 (18:21 +0200)]
elua: do not link to cffi, load the module instead

4 years agoelm_config: add slider to configure tooltip_delay
Boris Faure [Fri, 31 Jul 2020 10:59:01 +0000 (12:59 +0200)]
elm_config: add slider to configure tooltip_delay

reviewers_: #reviewers, raster, cedric, netstar, bu5hm4n

Reviewed By: bu5hm4n

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12060

4 years agoevas_textblock: remove logically dead code
Yeongjong Lee [Fri, 31 Jul 2020 06:44:44 +0000 (06:44 +0000)]
evas_textblock: remove logically dead code

Since `c->fmt` is allocated and dereferenced in `_layoutformat_push`, if
`c->fmt` is NULL, this causes a crash before checking for NULL.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12076

4 years agoecore_ipc: remove duplicated condition
Yeongjong Lee [Fri, 31 Jul 2020 07:09:40 +0000 (07:09 +0000)]
ecore_ipc: remove duplicated condition

The same condition is used above.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12077

4 years agoeina vpath - fix windows ~username handling to only error when used
Carsten Haitzler (Rasterman) [Thu, 30 Jul 2020 10:13:37 +0000 (11:13 +0100)]
eina vpath - fix windows ~username handling to only error when used

we would always rrturn 0 on windows ... missing  {} in block. fix that.

@fix

4 years agoevas_textblock : return correct value for gfx_filter_get
AbdullehGhujeh [Tue, 28 Jul 2020 13:38:33 +0000 (13:38 +0000)]
evas_textblock : return correct value for gfx_filter_get

return the same variable set with gfx_filter_set.
added test for it.

Reviewed-by: Ali Alzyod <ali198724@gmail.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12071

4 years agoevas_textblock : Remove unneeded code
AbdullehGhujeh [Tue, 28 Jul 2020 11:24:55 +0000 (11:24 +0000)]
evas_textblock : Remove unneeded code

Duplicated code removed

Reviewed-by: Ali Alzyod <ali198724@gmail.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12070

4 years agoevil: Remove unnecessary delay for evil startup
Lucas [Tue, 28 Jul 2020 20:26:35 +0000 (20:26 +0000)]
evil: Remove unnecessary delay for evil startup

Apparently there were two loops intended for an older (and dropped
off) implementation of `gettimeofday`. This patch simplifies the code removing
these loops and significantly lowering evil startup.

Without this patch `ecore-suite`, `efl-app` and `evas-suite` gets timeout in
Windows:
```
25/29 ecore-suite               TIMEOUT        30.12s
26/29 efl-app                   TIMEOUT        30.14s
...
29/29 evas-suite                TIMEOUT        60.07s
```

Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12064

4 years agotests: fix eio tests accepted/tizen/unified/20200729.165613 submit/tizen/20200728.225405
Marcel Hollerbach [Tue, 28 Jul 2020 07:23:11 +0000 (09:23 +0200)]
tests: fix eio tests

there are tests that init & shutdown efl_object in the same test, which
is since to switch to const _CLASS_GET dangerously wrong.

I checked for more cases but only found cases where no _CLASS_GET
macros where used.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12069

4 years agoevas - render - dont crash is private data is null
Carsten Haitzler (Rasterman) [Mon, 27 Jul 2020 21:45:36 +0000 (22:45 +0100)]
evas - render - dont crash is private data is null

@fix

4 years agoevas: remove unused define
Ali Alzyod [Mon, 27 Jul 2020 07:40:51 +0000 (07:40 +0000)]
evas: remove unused define

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12066

4 years agoelementry_test: fix allocation size
Ali Alzyod [Sun, 26 Jul 2020 08:51:09 +0000 (08:51 +0000)]
elementry_test: fix allocation size

This fix Coverty Issue CID: 1430579

Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12065

4 years agoci: do not build tests on ci
Marcel Hollerbach [Mon, 27 Jul 2020 11:49:20 +0000 (13:49 +0200)]
ci: do not build tests on ci

we need to do the same on any platform that upgrades check from 0.15.0 to
0.15.1. For now this is only with macos

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12068

4 years agobuild: warn of faulty check version
Marcel Hollerbach [Mon, 27 Jul 2020 10:24:57 +0000 (12:24 +0200)]
build: warn of faulty check version

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12067

4 years agoefreetd - add more logging for what efreetd says to clients
Carsten Haitzler (Rasterman) [Fri, 24 Jul 2020 22:22:47 +0000 (23:22 +0100)]
efreetd - add more logging for what efreetd says to clients

4 years agoefreetd - log the cache runs and when they launch, show data, exit
Carsten Haitzler (Rasterman) [Fri, 24 Jul 2020 22:02:16 +0000 (23:02 +0100)]
efreetd - log the cache runs and when they launch, show data, exit

4 years agoefreetd - dont confuse log file file handle and log math func
Carsten Haitzler (Rasterman) [Fri, 24 Jul 2020 20:22:33 +0000 (21:22 +0100)]
efreetd - dont confuse log file file handle and log math func

better not to use the same symbol...

4 years agoevas: font glyphs texture garbage collector
Ali Alzyod [Fri, 24 Jul 2020 09:36:27 +0000 (10:36 +0100)]
evas: font glyphs texture garbage collector

Summary:
Introduce two public APIS
```

/**
 * Set the limit in bytes for memory allocated by font glyphs in evas.
 * @param[in] bytes cache size in bytes, pass negative value to ignore the limit.
 * @param[in] options for caching, pass 0x1 to set the texture cache (in case of accelerated rendering).
 *
 * @since 1.24
 */
EAPI void                    evas_font_data_cache_set(signed long long int byte, int options);

/**
 * @}
 */

/**
 * Get the limit in bytes for memory allocated by font glyphs in evas.
 * @param[in] options for caching, pass 0x1 to get the texture cache (in case of accelerated rendering).
 * @return Returns font allocated memory cache limit, if value is negative this means no limit.
 * @since 1.24
 */
EAPI signed long long int    evas_font_data_cache_get(int options);
```

Test Plan:
elementary_test => Text Memory
You need a tool to observe Video memory allocation.
1- If you have detected Graphics card then use **radiontop** or  **nvidia-smi** ).
2- If you have Integrated Graphics card, then you can detect memory allocation on RAM use.

----------------------------------------------

this example allows only 50 MByte Video memory texture allocated by font glyphs
```

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 = 200;

int counter = 0;
void _button_clicked(void *data, Evas_Object *obj, void *event_info)
{
   APP *app = data;

  font_size -= 5;
  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);

  evas_font_data_cache_set(50 * 1024* 1024, EVAS_FONT_DATA_CACHE_TEXTURE );

  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, zmike, cedric, bu5hm4n, Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8737

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