platform/upstream/efl.git
4 years agoefl_con: add a default condition to switch statement 98/224998/1
Wonki Kim [Fri, 14 Feb 2020 10:44:56 +0000 (19:44 +0900)]
efl_con: add a default condition to switch statement

this patch add a default condition to switch to make code unreachable below.

Change-Id: I9c36084d0a9c9e481bc2b584513dede8fe3db8f0

4 years agoecore_con: fix to check a return value of functions 97/224997/1
Wonki Kim [Fri, 14 Feb 2020 12:11:03 +0000 (21:11 +0900)]
ecore_con: fix to check a return value of functions

this path fixes to check a return value of functions.

Change-Id: Ib53f31b446c7aa8f655b734d1b0e863421065ebd

4 years agoelementary: fix data los by dividing by integer 96/224996/1
Wonki Kim [Fri, 14 Feb 2020 11:09:09 +0000 (20:09 +0900)]
elementary: fix data los by dividing by integer

this patch fix a warning from static analyzer

Change-Id: I476ddb3a85e4b79df6c922f87d0eec5baf49f335

4 years agoefl_ui_scroller: fix a potentional null dereferencing 95/224995/1
Wonki Kim [Fri, 14 Feb 2020 12:13:31 +0000 (21:13 +0900)]
efl_ui_scroller: fix a potentional null dereferencing

Change-Id: I5c3ce98d1183c252aabb27453e151f3772387ebf

4 years agoedje: add null check for textblock styles 75/224975/1
Bowon Ryu [Fri, 14 Feb 2020 10:14:54 +0000 (19:14 +0900)]
edje: add null check for textblock styles

@tizen_fix

Change-Id: Ie7473e9f8353f39a1718b14b79c7b3d8eccdd5c3
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
4 years agoevas engine tbm: remove debugging logs. 67/224967/1
Hermet Park [Fri, 14 Feb 2020 09:40:31 +0000 (18:40 +0900)]
evas engine tbm: remove debugging logs.

These fprintf is not quite working well with tizen dlog system
Probably we can use ERR() otherwise remove them.

Change-Id: Ie583eaaf2c7edd13f6155fa6f3c4fb3dc1cf76dc

4 years agoevas engine tbm: check return value as its spec designed.
Hermet Park [Fri, 14 Feb 2020 09:38:30 +0000 (18:38 +0900)]
evas engine tbm: check return value as its spec designed.

Change-Id: I4054702831cd5f3684cf4b79ee5827e51ff4e275

4 years agoecore_evas tbm: check return value as its spec designed.
Hermet Park [Fri, 14 Feb 2020 09:33:19 +0000 (18:33 +0900)]
ecore_evas tbm: check return value as its spec designed.

Change-Id: Idd8e41b6fcdc70a471b9056aeb0f798cf743bf35

4 years agoeina_rbtree: avoid defererencing null pointer 66/224966/1
Yeongjong Lee [Fri, 14 Feb 2020 09:17:25 +0000 (18:17 +0900)]
eina_rbtree: avoid defererencing null pointer

Summary: Pointer 'it->stack' is dereferenced at `_eina_rbtree_iterator_free`.

Reviewers: Hermet, zmike

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

Change-Id: I93701e137d6901c84ff8eb1df8612e3455076b6e

4 years agoelementary atspi_bridge: fix memory leak at the corner case
Hermet Park [Fri, 14 Feb 2020 08:32:59 +0000 (17:32 +0900)]
elementary atspi_bridge: fix memory leak at the corner case

Change-Id: I1af3b84fa64946981fb71fd880925e611484bdf3

4 years agoelm_focus: comment out unreachable code 97/224897/3
Yeongjong Lee [Fri, 14 Feb 2020 03:32:19 +0000 (12:32 +0900)]
elm_focus: comment out unreachable code

@tizen_fix

Change-Id: Ifd438824368103dcdc911dee7df2594d08100201

4 years agoelementary value provider: replace sprintf() with snprintf()
Hermet Park [Fri, 14 Feb 2020 08:22:53 +0000 (17:22 +0900)]
elementary value provider: replace sprintf() with snprintf()

Avoid vulerable function usage in the test code

Change-Id: I1d53f54b8ed7a13072664b6d3a3e4e29bc3771d4

4 years agocanvas image: remove unnecessary condition check.
Hermet Park [Fri, 14 Feb 2020 08:06:44 +0000 (17:06 +0900)]
canvas image: remove unnecessary condition check.

Change-Id: I3c006ff9ee42928af0d45fa8899f754f7c8438d1

4 years agoelm_dbus_menu: Remove unreached code. 48/224948/1
JunsuChoi [Fri, 14 Feb 2020 07:27:27 +0000 (16:27 +0900)]
elm_dbus_menu: Remove unreached code.

Summary:
The property parameter used in this function are passed from _str_to_property.
_str_to_property does not pass anything other than the enum value.
Therefore this log is an unreached line.

Test Plan: N/A

Reviewers: Hermet, YOhoho

Reviewed By: YOhoho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

Change-Id: I458013b5b64e3d295eb2b515fe4cec63b9b784da

4 years agoeldbus_service: Prevent memory leak 46/224946/1
JunsuChoi [Fri, 14 Feb 2020 07:27:12 +0000 (16:27 +0900)]
eldbus_service: Prevent memory leak

Summary:
If obj->introspection_data is null, the function returns
without freeing the memory.

Test Plan: N/A

Reviewers: Hermet, YOhoho

Reviewed By: YOhoho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

Change-Id: I946cf88d4e86e7bf94e4dae8651b1fa7ff1ac013

4 years agoefl_ui_image : Avoid integral division 45/224945/1
JunsuChoi [Fri, 14 Feb 2020 07:26:52 +0000 (16:26 +0900)]
efl_ui_image : Avoid integral division

Summary:
Assigning a result of integral division to a double type variable
is not useful for division calculation.

Test Plan: N/A

Reviewers: Hermet, YOhoho

Reviewed By: YOhoho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

Change-Id: I82c9f42a93cabc3145d9ac16234da2de3833d2e5

4 years agoefl_ui_win_socket: Prevent memory leak 01/224901/2
JunsuChoi [Fri, 14 Feb 2020 04:22:22 +0000 (13:22 +0900)]
efl_ui_win_socket: Prevent memory leak

Change-Id: Iecce6e57eee8648f5ccbaf45ac50d71fe92cec42

4 years agoelc_multibuttonentry: Fix Svace warning. 14/224914/2
Woochanlee [Fri, 14 Feb 2020 05:32:19 +0000 (14:32 +0900)]
elc_multibuttonentry: Fix Svace warning.

fix unreachable condition.

Change-Id: Ib1209e121c4ddca103bcc39e2bcfacff6cea05b3
WGID: 424847

4 years agocanvas model_loaders: fix memory leak in ply loader.
Hermet Park [Fri, 14 Feb 2020 04:51:46 +0000 (13:51 +0900)]
canvas model_loaders: fix memory leak in ply loader.

eina_str_split() newly allocate memory to return,
caller must take over its resource free..

Change-Id: Ie7d5651a6904f1c81a4dd353b87714c4accf4c2a

4 years agoimage loaders pmaps: decide data size at the compile time.
Hermet Park [Fri, 14 Feb 2020 04:42:43 +0000 (13:42 +0900)]
image loaders pmaps: decide data size at the compile time.

Change-Id: Ie92a4f2b016c99a6019aeb1a0a3e6391668e710c

4 years agocanvas engine: + null check for safety
Hermet Park [Fri, 14 Feb 2020 04:36:53 +0000 (13:36 +0900)]
canvas engine: + null check for safety

Change-Id: I9298eeccf9ebc4520de25681299a76f3d2b2d9b2

4 years agogl image: free the resource properly at the corner case.
Hermet Park [Fri, 14 Feb 2020 04:27:11 +0000 (13:27 +0900)]
gl image: free the resource properly at the corner case.

Change-Id: I5b5f3cfce45b4c91c6879dbe1b2779e6361732af

4 years agogfx path: remove unreacheable code
Hermet Park [Fri, 14 Feb 2020 04:17:48 +0000 (13:17 +0900)]
gfx path: remove unreacheable code

Change-Id: Ib9271abf0526d4612b21bce5136105e7772bdc22

4 years agogfx path: + null check for safety
Hermet Park [Fri, 14 Feb 2020 04:15:11 +0000 (13:15 +0900)]
gfx path: + null check for safety

Change-Id: I9527c0d79353cb91084b157d27d5de2f42eabd34

4 years agogfx mapping: + null check for safety
Hermet Park [Fri, 14 Feb 2020 04:09:14 +0000 (13:09 +0900)]
gfx mapping: + null check for safety

Change-Id: Ia91a1ad303841012c62752523d2447138126e83d

4 years agocanvas vector: remove unreacheable code.
Hermet Park [Fri, 14 Feb 2020 04:03:58 +0000 (13:03 +0900)]
canvas vector: remove unreacheable code.

pd->buffer is always false.

Change-Id: Ic4ae0b6c0fb5792a3a28f0334adbcd297a624d02

4 years agoelementary genlist: remove duplicated instruction. 98/224898/2
Hermet Park [Fri, 14 Feb 2020 03:58:18 +0000 (12:58 +0900)]
elementary genlist: remove duplicated instruction.

Change-Id: I67602e2e0834357fab871f8bcaa2e78025f86808

4 years agogenlist: remove wrong null value check. itb is always existed and already dereferenced. submit/tizen/20200213.221652
SangHyeon Jade Lee [Thu, 13 Feb 2020 12:42:45 +0000 (21:42 +0900)]
genlist: remove wrong null value check. itb is always existed and already dereferenced.

Change-Id: I9bb2d665296836606ec5f94ec10808e2d1ea76b8
Signed-off-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
4 years agoevas_event: add checking mouse grab count.
Hosang Kim [Thu, 13 Feb 2020 09:55:23 +0000 (18:55 +0900)]
evas_event: add checking mouse grab count.

when object is hidden, mouse move event is generated.
It makes grab count error. So add checking mouse grab count.

Change-Id: I64e9423a1649340563ccd25e8ca20d7d5b5058f8

4 years agogenlist : fix build warning. function returns wrong type
SangHyeon Jade Lee [Thu, 13 Feb 2020 10:18:02 +0000 (19:18 +0900)]
genlist : fix build warning. function returns wrong type

Change-Id: I5b1b44d419ed01ab018222cbe139d9f4d7d5eff8
Signed-off-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
4 years agoevas_event: remove child object from list when child is deleted.
Hosang Kim [Wed, 12 Feb 2020 09:31:07 +0000 (18:31 +0900)]
evas_event: remove child object from list when child is deleted.

Event list of source object is not managed when child object is
deleted. So sometimes event list have dangling pointers.

Add Efl_Event_Del callback for managing child object.

Change-Id: Ia4c16994d34c58b2a2e50274e8c658774abcf7f2

4 years agoecore_evas: fix position error 46/224746/2
Doyoun Kang [Wed, 12 Feb 2020 07:38:10 +0000 (16:38 +0900)]
ecore_evas: fix position error

There was a bug that the tizen_position_set after handling tizen_position change event.
This caused a corruption of window position.

@tizen_fix

Change-Id: Ie004f929de85be4dcf3bbf6911a289f3ae6f1325
Signed-off-by: Doyoun Kang <doyoun.kang@samsung.com>
4 years agocsharp: Generating documentation for tuple-value properties.
João Paulo Taylor Ienczak Zanette [Mon, 20 Jan 2020 18:42:05 +0000 (18:42 +0000)]
csharp: Generating documentation for tuple-value properties.

Adds documentation for tuple-value properties (properties with
multiple values), so the following Eo:

```
@property multi_valued_prop {
   [[ A multi valued property. ]]
   get {}
   set {}
   values {
     prop1: int; [[ Dummy property's first element. ]]
     prop2: int; [[ Dummy property's second element. ]]
   }
}
```

Generates the following documentation:

```
/// <summary>A multi valued property.<br/>
/// Since EFL *current version*.</summary>
/// <value>A tuple containing the following information:
/// <list type="bullet">
/// <item><description><c>prop1</c> (<c>Item0</c>): Dummy property&apos;s first element.</description></item>
/// <item><description><c>prop2</c> (<c>Item1</c>): Dummy property&apos;s second element.</description></item>
/// </list></value>
```

Note: This commit also adds a default separator between tag name and
parameters in `generate_opening_tag`.

Ref T8468.

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

4 years agoefl_mono: Create insert list/array c# wrapper for eina_value.
Lucas Cavalcante de Sousa [Fri, 7 Feb 2020 19:53:39 +0000 (19:53 +0000)]
efl_mono: Create insert list/array c# wrapper for eina_value.

Implements Insert() method to eina.Value containers (array/list). The
Insert() (src/bindings/mono/eina_mono/eina_value.cs) method wraps native functions implemented with c
(src/lib/eina/eina_inline_value.x).
Resolves T7402

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

4 years agocsharp: Prevent using system dll for eflcustomexportsmono
João Paulo Taylor Ienczak Zanette [Thu, 13 Feb 2020 18:09:29 +0000 (18:09 +0000)]
csharp: Prevent using system dll for eflcustomexportsmono

If EFL is installed system-wide, `CustomExports` would use the system
(`/usr`) dll instead of local build's, causing new implemented binding calls to
native functions to crash with no entry point found for them.

This patch fixes it by ensuring that the local build's
`libeflcustomexportsmono.dll` will be used.

Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11343

4 years agoevas_textblock : remove wrong condition check for size_t value
SangHyeon Jade Lee [Thu, 13 Feb 2020 09:49:57 +0000 (18:49 +0900)]
evas_textblock : remove wrong condition check for size_t value

Summary:
pos in cursor handle is defined size_t type,
(see efl_canvas_textblock_internal.h)
which is unsigned int, and always bigger or equal to 0.

Reviewers: bowonryu, ali.alzyod

Reviewed By: ali.alzyod

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agovg_common_json: use %zu for size_t
Yeongjong Lee [Thu, 13 Feb 2020 02:30:27 +0000 (11:30 +0900)]
vg_common_json: use %zu for size_t

Summary:
Fixes a compiler warning
```
../src/static_libs/vg_common/vg_common_json.c: In function '_get_key_val':
../src/static_libs/vg_common/vg_common_json.c:16:34: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'unsigned int' [-Wformat=]
```

Test Plan: ninja build

Reviewers: Hermet, jsuya

Reviewed By: jsuya

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoeo - fix - fix alignment of eo object class structs - it was wrong
Carsten Haitzler (Rasterman) [Wed, 12 Feb 2020 21:11:18 +0000 (21:11 +0000)]
eo - fix - fix alignment of eo object class structs - it was wrong

the alignbment logic was wrong. we have to use the worst case. that
means 8 or 16 byte alignment. eina mempool alignment logic is wrong
for this as it assumes an array of typoes of all the same size...

this fixes crashes seen on armv7 with sigbus in new gesture code which
got unlucky.

@fix

4 years agoelm_panel: add "elm,state,hold" signal in _drawer_close()
Jaeun Choi [Thu, 18 Jan 2018 04:43:34 +0000 (13:43 +0900)]
elm_panel: add "elm,state,hold" signal in _drawer_close()

@tizen_only

Change-Id: I4cc2de3fad9775dd7526db354cafd392923c16b8

4 years agoelm_panel: [atspi][panel] Adds accessibility support for the panel widget
Jaeun Choi [Thu, 18 Jan 2018 05:09:10 +0000 (14:09 +0900)]
elm_panel: [atspi][panel] Adds accessibility support for the panel widget

@tizen_only

Change-Id: I89c47a40c808c71ff991c3e37066f47e1edb2c2f

4 years agoRevert "ecore_w2: Move some Ecore_Wl2 APIs to be internal" 44/224844/2
Woochanlee [Thu, 13 Feb 2020 10:56:19 +0000 (19:56 +0900)]
Revert "ecore_w2: Move some Ecore_Wl2 APIs to be internal"

This reverts commit f02fc7d2a9625966c1eacf943fbd33b23a29642c.

Change-Id: I96b654ddd99b81101a6dbef1b8ad8398d5c5419d

4 years ago[Naviframe] Remove effect name parameter
Godly Thekkethottiyil Alias [Mon, 10 Feb 2020 08:42:52 +0000 (14:12 +0530)]
[Naviframe] Remove effect name parameter

[Model] Noblesse
[BinType] N/A
[Customer] N/A
[Issue#] FWGOVERSEA-1393
[Request] N/A
[Occurrence Version] N/A
[Problem] Remove effect name parameter and use seamless effect as default for push_from API
[Cause & Measure] N/A
[Checking Method] N/A
[Team] (UIFW/EFL)
[Developer] Godly T.Alias
[Solution company] Samsung
[Change Type] New Feature

Change-Id: I478b72a41344cd29a0802284da29831fa7984eee
Signed-off-by: Godly Thekkethottiyil Alias <godly.talias@samsung.com>
4 years agoNaviframe new API for animatation
hyunseok yang [Thu, 30 Jan 2020 06:30:51 +0000 (15:30 +0900)]
Naviframe new API for animatation

Change-Id: I60d2bc8a7e442286e5182f454c9d01d2118dbeec
Signed-off-by: hyunseok yang <hs0219.yang@samsung.com>
4 years ago[Seamless Transition] Pop effect enhancement
Godly Thekkethottiyil Alias [Fri, 31 Jan 2020 11:08:38 +0000 (16:38 +0530)]
[Seamless Transition] Pop effect enhancement

[Model] Noblesse
[BinType] N/A
[Customer] N/A
[Issue#] FWGOVERSEA-1393
[Request] UX
[Occurrence Version] N/A
[Problem] Animation was not applied on pop
[Cause & Measure] Added perspective object animation to item pop
[Checking Method] N/A
[Team] (UIFW/EFL)
[Developer] Godly T.Alias
[Solution company] Samsung
[Change Type] New Feature

Change-Id: I34bbf0ddd0013f0b8d5fbdb677a95dc80777b684
Signed-off-by: Godly Thekkethottiyil Alias <godly.talias@samsung.com>
4 years ago[Naviframe] Seamless Transition
Godly Thekkethottiyil Alias [Fri, 24 Jan 2020 16:37:58 +0000 (22:07 +0530)]
[Naviframe] Seamless Transition

[Model] Noblesse
[BinType] N/A
[Customer] N/A
[Issue#] FWGOVERSEA-1393
[Request] N/A
[Occurrence Version] N/A
[Problem] N/A
[Cause & Measure] N/A
[Checking Method] N/A
[Team] (UIFW/EFL)
[Developer] Godly T.Alias
[Solution company] Samsung
[Change Type] New Feature

Change-Id: If8aade7c16537aa3015db157af6c02074d06f270
Signed-off-by: Godly Thekkethottiyil Alias <godly.talias@samsung.com>
4 years ago[Scrollable Interface] Added api elm_object_scroller_back_to_top_enable_set
Godly Thekkethottiyil Alias [Mon, 3 Feb 2020 11:19:23 +0000 (16:49 +0530)]
[Scrollable Interface] Added api elm_object_scroller_back_to_top_enable_set

[Model] Noblesse
[BinType] N/A
[Customer] N/A
[Issue#] FWGOVERSEA-1774
[Request] UX
[Occurrence Version] N/A
[Problem] N/A
[Cause & Measure] API to be moved to elementary layer
[Checking Method] N/A
[Team] (UIFW/EFL)
[Developer] Godly T.Alias
[Solution company] Samsung
[Change Type] New Feature

Change-Id: I6990b07647d6adcf87b1223c7b01560650a1574c
Signed-off-by: Godly Thekkethottiyil Alias <godly.talias@samsung.com>
4 years ago[Scrollable] Go To top Feature
Godly Thekkethottiyil Alias [Thu, 6 Feb 2020 15:01:34 +0000 (20:31 +0530)]
[Scrollable] Go To top Feature

[Model] Noblesse
[BinType] N/A
[Customer] N/A
[Issue#] FWGOVERSEA-1775
[Request] UX
[Occurrence Version] N/A
[Problem] N/A
[Cause & Measure] N/A
[Checking Method] N/A
[Team] (UIFW/EFL)
[Developer] Godly T.Alias
[Solution company] Samsung
[Change Type] New Feature

Change-Id: I6ea0c4130271709906cac840f27ef0afd7ad9f50
Signed-off-by: Godly Thekkethottiyil Alias <godly.talias@samsung.com>
4 years ago[Scrollable] Fix for clipper on go to top button
Godly Thekkethottiyil Alias [Tue, 28 Jan 2020 13:40:33 +0000 (19:10 +0530)]
[Scrollable] Fix for clipper on go to top button

[Model] Noblesse
[BinType] N/A
[Customer] N/A
[Issue#] FWGOVERSEA-1520
[Request] UX
[Occurrence Version] N/A
[Problem] N/A
[Cause & Measure] Clipper added in edc creates flickering
                  Moving clipper addition to elementary
[Checking Method] N/A
[Team] (UIFW/EFL)
[Developer] Godly T.Alias
[Solution company] Samsung
[Change Type] New Feature

Change-Id: Ia3672265029226e3f880ba9704c8228b2a430337
Signed-off-by: Godly Thekkethottiyil Alias <godly.talias@samsung.com>
4 years ago[Scrollable] Go to top hook function
Godly Thekkethottiyil Alias [Tue, 28 Jan 2020 10:42:23 +0000 (16:12 +0530)]
[Scrollable] Go to top hook function

    [Model] Noblesse
    [BinType] N/A
    [Customer] N/A
    [Issue#] FWGOVERSEA-1520
    [Request] N/A
    [Occurrence Version] N/A
    [Problem] N/A
    [Cause & Measure] N/A
    [Checking Method] N/A
    [Team] (UIFW/EFL)
    [Developer] Godly T.Alias
    [Solution company] Samsung
    [Change Type] New Feature

Change-Id: I62fd1fc0d27b5a830a5f142924af696ed692c418
Signed-off-by: Godly Thekkethottiyil Alias <godly.talias@samsung.com>
4 years ago[Scrollable Interface] Go To Top support
Godly Thekkethottiyil Alias [Thu, 23 Jan 2020 15:52:38 +0000 (21:22 +0530)]
[Scrollable Interface] Go To Top support

[Model] N/A
[BinType] N/A
[Customer] N/A
[Issue#] FWGOVERSEA-1520
[Request] N/A
[Occurrence Version] N/A
[Problem] Scroll To Top button for scroller
[Cause & Measure] N/A
[Checking Method] N/A
[Team] (UIFW/EFL)
[Developer] Godly T.Alias
[Solution company] Samsung
[Change Type] New feature

Change-Id: I5e8ac5f8f91bc0f635f1e79d0efdc44b9ca9d600
Signed-off-by: Godly Thekkethottiyil Alias <godly.talias@samsung.com>
4 years agoelm_conform: fix casting warning for elm_win_wl_window_get API 08/224808/2
Taehyub Kim [Thu, 13 Feb 2020 07:14:17 +0000 (16:14 +0900)]
elm_conform: fix casting warning for elm_win_wl_window_get API

Change-Id: Ib5cd3ba6c7bd50fe68136e4a56aafaff0c9e83e8

4 years agoecore_w2: Move some Ecore_Wl2 APIs to be internal 42/224842/2 submit/tizen/20200213.102849
Woochanlee [Thu, 13 Feb 2020 10:25:27 +0000 (19:25 +0900)]
ecore_w2: Move some Ecore_Wl2 APIs to be internal

This commit to prepare ecore_wl2 APIs public work.

@tizen_only

Change-Id: I37cb82be7bd8d9bea24e91bf4f7340d6db6a8297

4 years agotizen_vector: remove unused variables for progressbar style 97/224797/3
Taehyub Kim [Thu, 13 Feb 2020 06:38:18 +0000 (15:38 +0900)]
tizen_vector: remove unused variables for progressbar style

Change-Id: I2daaaf3a7c31d7971c1db8c055500e094af4d120

4 years agoelm_entry: remove unused static _entry_selection_changed_signal_job_cb function 99/224799/2
Taehyub Kim [Thu, 13 Feb 2020 06:47:23 +0000 (15:47 +0900)]
elm_entry: remove unused static _entry_selection_changed_signal_job_cb function

Change-Id: Id52905ccbcebdfd4a157c8d1f84adf9cba6ca7e5

4 years agoEvas : remove tizen only code to fix build erros related to beta APIs 40/224840/2
Yeongjong Lee [Thu, 13 Feb 2020 10:01:48 +0000 (19:01 +0900)]
Evas : remove tizen only code to fix build erros related to beta APIs

This reverts commit 5b5e498929b81a71d696ecfd5a016066286d88fc.

Change-Id: Idb42cb78d4d88204b8e756837c9bee6aa79d5b8c

4 years agoelm_toolbar: fix warning to compare integer and enum value 10/224810/2
Taehyub Kim [Thu, 13 Feb 2020 07:34:30 +0000 (16:34 +0900)]
elm_toolbar: fix warning to compare integer and enum value

Change-Id: Ic662065109f32131f60731377afc8e759cd4b679

4 years agocanvas textblock: + null handling
Hermet Park [Thu, 13 Feb 2020 10:16:01 +0000 (19:16 +0900)]
canvas textblock: + null handling

Change-Id: I661d1f47579cc9c5a143464abb4591b53c43a830

4 years agocanvas textblock: + null safety
Hermet Park [Thu, 13 Feb 2020 10:05:43 +0000 (19:05 +0900)]
canvas textblock: + null safety

Change-Id: I43811fa5d80b6be8621172300d847813d5829d37

4 years agoui text: code refactoring
Hermet Park [Thu, 13 Feb 2020 09:53:33 +0000 (18:53 +0900)]
ui text: code refactoring

replace unreacheable code with EINA_UNUSED properly

Change-Id: I3efabb0a66895b121b45ee4a243640d4fb3808c7

4 years agocanvas font: correct wrong masking length. 18/224818/2
Hermet Park [Thu, 13 Feb 2020 07:48:57 +0000 (16:48 +0900)]
canvas font: correct wrong masking length.

the masking length should be x2 - x1 otherwise,
it will try to mask over regions with dirty pixels.

@fix

Change-Id: If82fa94da99a24856bb3e177bf698c8a53c62d5f

4 years agoedje marquee: remove useless code. 31/224731/2
Hermet Park [Wed, 12 Feb 2020 12:09:36 +0000 (21:09 +0900)]
edje marquee: remove useless code.

Change-Id: I957c42dfa86ab7b95f32965028cf054fb63dadf1

4 years agoevas_gl_texture: change tex_palette type to GLuint from GLint 05/224705/2
Yeongjong Lee [Wed, 12 Feb 2020 10:18:08 +0000 (19:18 +0900)]
evas_gl_texture: change tex_palette type to GLuint from GLint

Fixes compiler warnings
```
../src/modules/evas/engines/gl_common/evas_gl_texture.c: In function 'evas_gl_common_texture_update':
../src/modules/evas/engines/gl_common/evas_gl_texture.c:1478:35: warning: pointer targets in passing argument 4 of 'evas_glGenTextures_thread_cmd' differ in signedness [-Wpointer-sign]
1478 |           GL_TH(glGenTextures, 1, &(tex->tex_palette));
```
```
../src/modules/evas/engines/gl_common/evas_gl_thread_gl_generated.h:67:66: note: expected 'GLuint *' {aka 'unsigned int *'} but argument is of type 'GLint *' {aka 'int *'}
67 | extern void GL_TH_FN(glGenTextures)(GL_TH_DP, GLsizei n, GLuint* textures);
```

@tizen_fix

Change-Id: Ib3ee6e34ff14720a31a56edb096ac967be9b6bbf

4 years agoevas_gl_texture: add missing type declaration 01/224701/2
Yeongjong Lee [Wed, 12 Feb 2020 09:52:34 +0000 (18:52 +0900)]
evas_gl_texture: add missing type declaration

Fixes compiler warings.
```
[   69s] ../src/modules/evas/engines/gl_common/evas_gl_texture.c:56:14: warning: type defaults to 'int' in declaration of 'palette_ifmt' [-Wimplicit-int]
[   69s]    56 | static const palette_ifmt         = GL_ALPHA;
[   69s]       |              ^~~~~~~~~~~~
[   69s] ../src/modules/evas/engines/gl_common/evas_gl_texture.c:57:14: warning: type defaults to 'int' in declaration of 'palette_fmt' [-Wimplicit-int]
[   69s]    57 | static const palette_fmt          = GL_ALPHA;
[   69s]       |              ^~~~~~~~~~~
[   69s] ../src/modules/evas/engines/gl_common/evas_gl_texture.c:105:52: warning: pointer targets in initialization of 'const GLenum *' {aka 'const unsigned int *'} from 'const int *' differ in signedness [-Wpointer-sign]
[   69s]   105 |   { MATCH_ANY, MATCH_ANY, EVAS_COLORSPACE_PALETTE, &palette_ifmt, &palette_fmt }
[   69s]       |                                                    ^
[   69s] ../src/modules/evas/engines/gl_common/evas_gl_texture.c:105:52: note: (near initialization for 'matching_format[17].intformat')
[   69s] ../src/modules/evas/engines/gl_common/evas_gl_texture.c:105:67: warning: pointer targets in initialization of 'const GLenum *' {aka 'const unsigned int *'} from 'const int *' differ in signedness [-Wpointer-sign]
[   69s]   105 |   { MATCH_ANY, MATCH_ANY, EVAS_COLORSPACE_PALETTE, &palette_ifmt, &palette_fmt }
```

@tizen_fix
Change-Id: I45b802841079f1233b9a3a24aa8fe06d931bd257

4 years agoevas_engine: remove unused variable 97/224697/3
Yeongjong Lee [Thu, 13 Feb 2020 01:31:34 +0000 (10:31 +0900)]
evas_engine: remove unused variable

@tizen_fix

Change-Id: I3278b8e5690d89b83d7184a939ecbde5543b3523

4 years agoevas_proxy: correct initialization of default_proxy 94/224694/2
Yeongjong Lee [Wed, 12 Feb 2020 09:34:58 +0000 (18:34 +0900)]
evas_proxy: correct initialization of default_proxy

ref 76b89b8e49f4b16ad490c04134a9bdddea27950f

@tizen_fix

Change-Id: I8bd92b0faf9d4ef6dfdfb2750acffb870edddee3

4 years agoevas_image_load: remove unused variable 92/224692/2
Yeongjong Lee [Wed, 12 Feb 2020 09:25:57 +0000 (18:25 +0900)]
evas_image_load: remove unused variable

Change-Id: Ie7317fa03fb591085ec5c4433bcc74b57c54f297

4 years agogenlist : fix wrong condition of delete transition submit/tizen/20200213.043550
SangHyeon Jade Lee [Tue, 4 Feb 2020 10:55:26 +0000 (19:55 +0900)]
genlist : fix wrong condition of delete transition

Change-Id: Ieb5090489fa6623f5cd47ac3b406cbbf23c18c00
Signed-off-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
4 years agoci: enable exactness build on travis
Stefan Schmidt [Wed, 12 Feb 2020 17:10:07 +0000 (12:10 -0500)]
ci: enable exactness build on travis

Summary:
With exactness merged into efl we can finally enable some exactness
testing on our CI. As a first step we will run around 47 tests from our
elementary_tests recordings.

The base data is already in the specific docker image to avoid
downloading on each run. We also need to use a dedicated branch from the
repo while we are still working out all the problems to make exactness
recordings really independent from their env.

Depends on D11317

Reviewers: zmike, bu5hm4n

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoexactness_player: fix running of exactness player after compile fix
Stefan Schmidt [Wed, 12 Feb 2020 17:10:04 +0000 (12:10 -0500)]
exactness_player: fix running of exactness player after compile fix

Summary:
The last compile fix broke the execution of exactness. When replacing
_POSIX_PATH_MAX with PATH_MAX here we did not catch that it would
overwrite out of bounds here as the original _POSIX_PATH_MAX is limited
to 256 while PATH_MAX can go up to 4096. This screws up the size of the
memset.

Reviewers: zmike, bu5hm4n, vtorri, ali.alzyod

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agocsharp: Fix managed name when solving Get/SetType name clash
João Paulo Taylor Ienczak Zanette [Wed, 12 Feb 2020 15:39:51 +0000 (16:39 +0100)]
csharp: Fix managed name when solving Get/SetType name clash

Summary:
If you declare a property called "type", the generated getter method
would be called "GetType", clashing with "System.Object.GetType" method. The
current workaround for that is to straight-forwardly insert the respective
class/abstract's Eolian name into the function name (becoming, for example
"GetMy_ClassType"), sometimes getting inconsistent to not only other methods
but also with documentation (leading to XML errors, since a cref doc would
reference "GetMyClassType", which doesn't exists).

This patch fixes that by wrapping the Eolian name with the already existing
`managed_name` function.

Test Plan: Run ninja tests.

Reviewers: zmike, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agotests/layout: modify api ordering test to verify theme signal emission
Mike Blumenkrantz [Thu, 23 Jan 2020 14:34:52 +0000 (09:34 -0500)]
tests/layout: modify api ordering test to verify theme signal emission

ensure that signals queued during construction are always emitted

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

4 years agoefl_ui_panes: remove duplicated press/unpress event
Yeongjong Lee [Fri, 17 Jan 2020 07:50:07 +0000 (07:50 +0000)]
efl_ui_panes: remove duplicated press/unpress event

pressed/unpressed event will be emitted by efl_input_clickable_press/unpress.

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

4 years agoelc_fileselector: add NULL check for eina_value_type_get
Yeongjong Lee [Wed, 12 Feb 2020 14:05:42 +0000 (09:05 -0500)]
elc_fileselector: add NULL check for eina_value_type_get

Reviewers: Jaehyun_Cho, Hermet, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

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

4 years agoelm_interface_scrollable: prevent calling APIs with NULL edje object
Yeongjong Lee [Wed, 12 Feb 2020 14:04:09 +0000 (09:04 -0500)]
elm_interface_scrollable: prevent calling APIs with NULL edje object

Summary:
Is is unnecessary to call edje_object_ functions if `edje_obj` is NULL.

Also, It prevents printing 6 eo warnings
```
WRN<30343>:eo ../src/lib/eo/eo.c:644 _efl_object_call_resolve() NULL passed to function efl_layout_signal_emit().
```

Test Plan:
`EINA_LOG_LEVELS=eo:2 elementary_test`
`EINA_LOG_LEVELS=eo:3 elementary_test -to focus`

Reviewers: bu5hm4n, Jaehyun_Cho, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

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

4 years agoeina - promise - be safe if no scheduled_entry is there
Carsten Haitzler (Rasterman) [Wed, 12 Feb 2020 09:52:03 +0000 (09:52 +0000)]
eina - promise - be safe if no scheduled_entry is there

something is causing a scheduled entry to be called with no scheduled
entry: https://phab.enlightenment.org/T8490 - valgrind trace
aattached. i can't see it so i don't know what. the only protection i
can put in is this.

4 years agoTabs: remove them
Xavi Artigas [Wed, 12 Feb 2020 09:44:06 +0000 (10:44 +0100)]
Tabs: remove them

They have been known to crash some old compilers and have
severe performance penalties on non-power-of-two architectures
like the Chitauri 13-bit processors.

Tabs also cause eye strain, vomits, brain tumors and bad breath.

4 years agoeo : fix 8e6e1860c3, _efl_object_event_future_scheduler_get(…) returns a pointer
Jérémy Zurcher [Wed, 12 Feb 2020 08:08:59 +0000 (09:08 +0100)]
eo : fix 8e6e1860c3, _efl_object_event_future_scheduler_get(…) returns a pointer

4 years agoevas: remove redundant conditions.
Wonki Kim [Wed, 12 Feb 2020 07:48:16 +0000 (16:48 +0900)]
evas: remove redundant conditions.

Summary:
conditions of the inner and outer statement are identical.
this patch removes a condition of them.

Reviewers: jsuya, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoeo: remove potentional NULL dereferencing
Wonki Kim [Wed, 12 Feb 2020 07:47:33 +0000 (16:47 +0900)]
eo: remove potentional NULL dereferencing

Summary: this patch removes a potentional NULL dereferencing

Reviewers: jsuya, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoedje_cc : remove potential NULL dereferencing
Wonki Kim [Wed, 12 Feb 2020 07:47:00 +0000 (16:47 +0900)]
edje_cc : remove potential NULL dereferencing

Summary: this patch removes potential NULL deferencing in edje_cc

Reviewers: jsuya, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoefl_ui_position_manager_list: add NULL check for memory allocation
Yeongjong Lee [Wed, 12 Feb 2020 07:45:40 +0000 (16:45 +0900)]
efl_ui_position_manager_list: add NULL check for memory allocation

Reviewers: Jaehyun_Cho, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoevas_render: initialize variable
Shinwoo Kim [Tue, 11 Feb 2020 14:03:43 +0000 (09:03 -0500)]
evas_render: initialize variable

Summary:
evas_object_image_load_region_get could be called with following stack.

(#0) evas_object_image_load_region_get
(#1) evas_render_proxy_subrender
(#2) evas_filter_context_proxy_render_all
(#3) evas_filter_object_render
(#4) evas_object_text_render

This means that evas_object_image_load_region_get is called by text object.
In this case, the load region value has garbabe, and it leads to invalid
memory access which is detected by Assan(T8610).

This patch initialize variable before using evas_object_image_load_region_set.

Reviewers: Hermet, jsuya, bu5hm4n, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoevas proxy: make it work for load_region
Shinwoo Kim [Tue, 4 Feb 2020 03:14:23 +0000 (12:14 +0900)]
evas proxy: make it work for load_region

Summary:
This makes a proxy object use a selective region of a source object.
So far a proxy has not worked for load_region at all.
This should be better solution than https://phab.enlightenment.org/D10604
introducing new interface.

This is useful when the source is too big to allocate a proxy surface.
This will be used by elm_scroller to solve following issue.

[Issue]
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

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

Change-Id: I9a8d80eca88a5f2d1d1c1b5425294bcd4017bfa9

4 years agowearable_position_mgr: remove a potentional null dereferencing 47/224647/1
Wonki Kim [Wed, 12 Feb 2020 06:06:07 +0000 (15:06 +0900)]
wearable_position_mgr: remove a potentional null dereferencing

this patch removes a potentional null dereferencing

Change-Id: I6e5fc8fb3aef8376435eb0682c21720fc5a95c24

4 years agoRevert "genlist :disable source clip set to prevent unwanted clipping issue on proxy" 09/224609/2
Hermet Park [Wed, 12 Feb 2020 03:23:06 +0000 (12:23 +0900)]
Revert "genlist :disable source clip set to prevent unwanted clipping issue on proxy"

This reverts commit b2acde3ac2c7da734abeb71e2dd070aa08180876.

Fixed proxy regression bug - d5d9e9a9aafad398c82c5302f36c1be8db53d455

Change-Id: Ie185ef59f19ec15c5405185a63071ecf034856df

4 years agoRevert "Revert "eolian: enforce that list<> can only be used with @beta API."" 96/223596/4
Yeongjong Lee [Fri, 31 Jan 2020 05:24:13 +0000 (14:24 +0900)]
Revert "Revert "eolian: enforce that list<> can only be used with @beta API.""

Build error has been fixed by 8c28c4c6cc6164819d521e9834af537f4978f1ee.

This reverts commit e77fe8c40b8e0b26bc1b86734f304d9a7825ea4b.

Change-Id: I3ed3b7ad9c3b01612b573f34bfc2eb5b1dadb612

4 years agoeolian: finally error on missing since tags 02/224602/1
Marcel Hollerbach [Fri, 31 Jan 2020 15:47:46 +0000 (16:47 +0100)]
eolian: finally error on missing since tags

this is actaully usefull ... for people not forgetting things.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D11266

Change-Id: Iae2c685be54e282201b2ffa1ef02b77ffb497a33

4 years agoevas_canvas3d_types: mark @beta Evas.Real 01/224601/1
Yeongjong Lee [Wed, 12 Feb 2020 02:37:12 +0000 (11:37 +0900)]
evas_canvas3d_types: mark @beta Evas.Real

No build error anymore.
ref commit 10b2e407d0a002ef4bc5987cbdafea5fd62952e6.

@tizen_fix
Change-Id: I69fce86a6ba8019a73604eec0689f5a04a956fbc

4 years agoecore_input_device: add since tags for ecore_input_device enums 00/224600/1
Yeongjong Lee [Wed, 12 Feb 2020 02:34:55 +0000 (11:34 +0900)]
ecore_input_device: add since tags for ecore_input_device enums

@tizen_fix

Change-Id: I3403b7e1043e160feee0497cee9659d5a163f945

4 years agoexactness: make it optional and disble it by default
Jongmin Lee [Tue, 11 Feb 2020 22:15:18 +0000 (07:15 +0900)]
exactness: make it optional and disble it by default

@tizen_only

Change-Id: I3b5d3c904c9c10db73ec7533232004f0b26b872b

4 years agoelm perf_test: fix warning of implicit conversion of floating point
Yeongjong Lee [Tue, 11 Feb 2020 13:56:34 +0000 (08:56 -0500)]
elm perf_test: fix warning of implicit conversion of floating point

Summary:
The result of integral division is converted into floating point.
In order to fix this warning, it changes denominator to double from integer.

Reviewers: Jaehyun_Cho, Hermet, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoefl.canvas.textblock: allow all white spaces in style string not just space
Ali Alzyod [Tue, 11 Feb 2020 11:03:00 +0000 (12:03 +0100)]
efl.canvas.textblock: allow all white spaces in style string not just space

Summary:
style string can contain any kind of white spaces and it will be fine

For example
```
"font=sans font_size=30 color=red "
```
Is the same as
```
"font=sans\tfont_size=30\n  color=red "
```

Reviewers: woohyun, segfaultxavi, tasn, zmike

Reviewed By: segfaultxavi

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8532

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

4 years agodocs: ecore_animator's default framerate is 60 not 30
Xavi Artigas [Tue, 11 Feb 2020 10:03:49 +0000 (11:03 +0100)]
docs: ecore_animator's default framerate is 60 not 30

This was changed in 81242af6f95 without updating the docs.

4 years agoexactness_player: make use of PATH_MAX define instead of posix variant
Stefan Schmidt [Mon, 10 Feb 2020 11:10:43 +0000 (12:10 +0100)]
exactness_player: make use of PATH_MAX define instead of posix variant

The use of _POSIX_ has lead to a compile problem on old Ubuntu (16.04)
versions. We use PATH_MAX everywhere else so follow suit here.

Fixes T8613

Reviewed-by: Ali Alzyod <ali198724@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11305

4 years agoelm_code_widget: Display cursor within widget.
Alastair Poole [Sun, 9 Feb 2020 21:14:42 +0000 (21:14 +0000)]
elm_code_widget: Display cursor within widget.

Only render the cursor when its within the bounds of the
widget.

4 years agoefl: `eina_value_list_vinsert` assumes that the position is always valid
Lucas Cavalcante de Sousa [Fri, 7 Feb 2020 18:52:15 +0000 (13:52 -0500)]
efl: `eina_value_list_vinsert` assumes that the position is always valid

Summary:
The eina_value_list_vinsert at src/lib/eina_inline_value.x was not checking if the desired position was valid:
When inserting in an empty list in any out of bounds position it actually createded a list with the head being the desired value.
When inserting in a non-empty list in an out of bounds position caused a c error.
Now both cases return EINA_FALSE

Ref T8611

Test Plan:
Meson configured with -Dbindings=mono,cxx -Dmono-beta=true, and tests runned
with ninja test all.

Reviewers: felipealmeida, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8611

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

4 years agoexactness: fix osx build
Marcel Hollerbach [Fri, 7 Feb 2020 14:04:03 +0000 (15:04 +0100)]
exactness: fix osx build

edje depends on more than just edje_cc.

4 years agoefl.ui.textbox: prevent longpress + right click from working on scrollbars
Ali Alzyod [Fri, 7 Feb 2020 13:15:20 +0000 (14:15 +0100)]
efl.ui.textbox: prevent longpress + right click from working on scrollbars

summary_: Longpress and right click one textbox scrollbars will not show up the menu.

Reviewers: woohyun, bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8604

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

4 years agoexactness: cleanup some coding style isues
Stefan Schmidt [Fri, 31 Jan 2020 12:35:54 +0000 (13:35 +0100)]
exactness: cleanup some coding style isues

Just a few that I spotted when looking over the code.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11290

4 years agoexactness: fix init/shutdown handling of efl components in various binaries
Stefan Schmidt [Fri, 31 Jan 2020 12:34:23 +0000 (13:34 +0100)]
exactness: fix init/shutdown handling of efl components in various binaries

The init/shutdown handling for efl libraries was a bit sloppy and
unbalanced in the exactness binaries. Switching over to use
ecore_eas_init/shutdown here instead of doing all libs individually.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11289