Carsten Haitzler (Rasterman) [Mon, 24 Aug 2020 21:23:29 +0000 (22:23 +0100)]
tests - elm spinner - use proper elm enum - warning fix
Carsten Haitzler (Rasterman) [Mon, 24 Aug 2020 21:22:17 +0000 (22:22 +0100)]
tests - elm slider - fix possile use of uninit var warning
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
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
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
Jongmin Lee [Mon, 24 Aug 2020 22:00:21 +0000 (07:00 +0900)]
spec: bump version for 1.25.0
Change-Id: I37dcd89123eb1a26b71d0410372fe7b6bea68933
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
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
Michal Maciola [Mon, 17 Aug 2020 09:28:39 +0000 (11:28 +0200)]
Added evas-clipping example
Ranamed to vg convention
Change-Id: I06789e46d82fc49399f068169de57c843cdd022c
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
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
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
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.
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
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
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
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.
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
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
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.
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
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
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
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
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
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
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
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<<>>"A'<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
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
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
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
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
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
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
Alastair Poole [Sat, 15 Aug 2020 14:52:56 +0000 (15:52 +0100)]
ecore_x: Add mode flags new in xrandr 1.2.
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
Piotr Kalota [Mon, 10 Aug 2020 13:53:37 +0000 (15:53 +0200)]
added example for evas_vg_shape_interpolate()
Change-Id: I27821c27a34f6d974dcd796f6e227a061736b3fb
p.kalota [Mon, 27 Jul 2020 08:23:14 +0000 (10:23 +0200)]
added example for evas_vg_shape_equal_commands()
Change-Id: Iab27b8044eb5c87e531c6181023535949a3ee1b5
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
Mateusz Palkowski [Mon, 10 Aug 2020 08:39:04 +0000 (10:39 +0200)]
evas/canvas/vg: added gradient example
Change-Id: Id7f929d5fda53da8d780548434a58b562cbf0a76
Mateusz Palkowski [Fri, 24 Jul 2020 12:52:22 +0000 (14:52 +0200)]
evas/canvas/vg: added cubic bezier example
Change-Id: I092e5df8841a44b03efac9e7f2833bbf3681518d
Mateusz Palkowski [Fri, 24 Jul 2020 11:39:15 +0000 (13:39 +0200)]
evas/canvas/vg: added shape reset example
Change-Id: I403a8d9b5b964ded7aaee73b9e9fc8db0950d6d1
Mateusz Palkowski [Fri, 24 Jul 2020 08:19:51 +0000 (10:19 +0200)]
evas/canvas/vg: added shape duplication example
Change-Id: I932d6e21631779cf182bdb47f4fbb35788a5bd08
Mateusz Palkowski [Thu, 23 Jul 2020 08:59:27 +0000 (10:59 +0200)]
evas/canvas/vg: added dash example
Change-Id: Id2d2267629bf1c69ce847fa811b8e6dc9de45114
Mateusz Palkowski [Wed, 22 Jul 2020 13:17:34 +0000 (15:17 +0200)]
evas/canvas/vg: added circles example.
Change-Id: Ief878dc3d5503700274a3ee3139a2a3662937535
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
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
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
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
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...
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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".
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.
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
Daniel Kolesa [Fri, 31 Jul 2020 16:54:04 +0000 (18:54 +0200)]
elua: add searchpath impl for 5.1 compat
Daniel Kolesa [Fri, 31 Jul 2020 16:37:03 +0000 (18:37 +0200)]
elua: fix elua_register with 5.1
Daniel Kolesa [Fri, 31 Jul 2020 16:21:15 +0000 (18:21 +0200)]
elua: do not link to cffi, load the module instead
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
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
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
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
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
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
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
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
Carsten Haitzler (Rasterman) [Mon, 27 Jul 2020 21:45:36 +0000 (22:45 +0100)]
evas - render - dont crash is private data is null
@fix
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
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
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
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
Carsten Haitzler (Rasterman) [Fri, 24 Jul 2020 22:22:47 +0000 (23:22 +0100)]
efreetd - add more logging for what efreetd says to clients
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
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...
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