Lauro Moura [Fri, 24 Nov 2017 00:56:11 +0000 (21:56 -0300)]
efl_mono: Add msbuild file generator
Buildsystem integration will come in a future commit.
Lauro Moura [Fri, 24 Nov 2017 00:53:28 +0000 (21:53 -0300)]
efl_mono: Added test files for the C# bindings.
Buildsystem integration will come in a future commit.
Lauro Moura [Fri, 24 Nov 2017 00:50:16 +0000 (21:50 -0300)]
eolian_mono: Added code for eolian_mono generator
Based on the eolian_cxx library generators. Buildsystem files will come
in a future commmit.
Lauro Moura [Fri, 24 Nov 2017 00:49:22 +0000 (21:49 -0300)]
efl_mono: Adding support code for the C# binding
This is the C# manual code for the binding. Buildsystem integration will
come in a future commit.
Lauro Moura [Fri, 24 Nov 2017 00:47:25 +0000 (21:47 -0300)]
eolian_cxx: Many changes for the C# bindings
- Added helper function to get all methods of a given class (local and
inherited methods)
- Add filename information to klass
- Added new defs: enum, value (currently only integers), struct
- Generator refactoring
- Eolian C compatibility
Lauro Moura [Fri, 24 Nov 2017 00:46:55 +0000 (21:46 -0300)]
eolian: Add inarray and inlist
Stefan Schmidt [Mon, 4 Dec 2017 15:43:12 +0000 (16:43 +0100)]
docs: fill in missing docs for efl_animation_ eo classes
Stefan Schmidt [Mon, 4 Dec 2017 15:34:23 +0000 (16:34 +0100)]
docs: fill in missing docs for efl_ui_calendar_item eo class
Stefan Schmidt [Mon, 4 Dec 2017 15:33:57 +0000 (16:33 +0100)]
docs: fill in missing docs for efl_animation eo class
Stefan Schmidt [Mon, 4 Dec 2017 14:42:36 +0000 (15:42 +0100)]
docs: fill in missing docs for efl_ui_popup_alert eo class
Stefan Schmidt [Mon, 4 Dec 2017 14:32:48 +0000 (15:32 +0100)]
docs: fill in mising docs for efl_ui_popup_anchor class
Stefan Schmidt [Mon, 4 Dec 2017 14:17:32 +0000 (15:17 +0100)]
docs: fill in mising eo file docs for efl_ui_popup
Pawel Aksiutowicz [Mon, 4 Dec 2017 10:35:06 +0000 (19:35 +0900)]
ecore: removed warning from ecore_anim
Reviewers: stanluk, lukasz.stanislawski, jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5535
Pawel Aksiutowicz [Mon, 4 Dec 2017 10:32:46 +0000 (19:32 +0900)]
ecore: munmap() call get size of the same type as nmap() call in "len" argument
Reviewers: stanluk, lukasz.stanislawski, jpeg
Reviewed By: jpeg
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5553
Amitesh Singh [Fri, 1 Dec 2017 02:51:56 +0000 (11:51 +0900)]
efl.gfx: move scale{} from efl.ui.base to efl.gfx
Cedric Bail [Mon, 4 Dec 2017 00:30:53 +0000 (16:30 -0800)]
ecore: rename efl_loop_Eina_FutureXXX_timeout to efl_loop_timeout.
Cedric Bail [Mon, 4 Dec 2017 00:20:20 +0000 (16:20 -0800)]
ecore: remove efl_loop_timeout.
Cedric Bail [Mon, 4 Dec 2017 00:09:14 +0000 (16:09 -0800)]
ecore: remove efl_loop_timeout tests.
Cedric Bail [Mon, 4 Dec 2017 00:01:09 +0000 (16:01 -0800)]
ecore: remove a test from old efl_promise to remove use of efl_loop_timeout.
Al Poole [Sun, 3 Dec 2017 21:46:15 +0000 (21:46 +0000)]
Revert "BSD: resolve issue of missing symbols building E on FreeBSD."
This reverts commit
482724d52aaebb21ebb228eead9ddc107b094780.
Sorry!!!
Al Poole [Sun, 3 Dec 2017 13:37:42 +0000 (13:37 +0000)]
BSD: resolve issue of missing symbols building E on FreeBSD.
Al Poole [Sat, 2 Dec 2017 11:45:53 +0000 (11:45 +0000)]
eina_file_win32: also check for copy before unmapping region.
Chris Michael [Fri, 1 Dec 2017 20:32:35 +0000 (15:32 -0500)]
ecore-evas-drm: Check for XDG_SEAT existence
Small patch to allow specifying a different seat via XDG_SEAT env
variable. If no seat name is passed as ecore_evas options, then we
would always default to 'seat0'. As this may not be desirable in all
situations, allow for an override via XDG_SEAT env var.
ref T6455
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Derek Foreman [Thu, 30 Nov 2017 21:33:38 +0000 (15:33 -0600)]
ecore_wl2: Add API ecore_wl2_window_surface_flush
This allows something that only has the Ecore_Wl2_Window (ie: something
that isn't engine code) to force dropping of all the buffers.
This should be safe to call at any time as the buffer handling logic
will properly cleanup the buffers when async render is done with them
or the compositor releases them.
This will eventually be used when a wayland client receives a
wl_output.leave events to indicate it isn't displayed on any outputs.
Derek Foreman [Thu, 30 Nov 2017 21:19:17 +0000 (15:19 -0600)]
ecore_wl2: Add ecore_wl2_surface_flush
This removes all buffers from a surface.
Derek Foreman [Thu, 30 Nov 2017 21:10:22 +0000 (15:10 -0600)]
ecore_wl2: add Ecore_Wl2_Surface to Ecore_Wl2_Window
Track the surface of a window and only allow one.
Eventually this might be worthwhile to apply to subsurfaces, but for today
lazy is the way.
Derek Foreman [Thu, 30 Nov 2017 19:15:15 +0000 (13:15 -0600)]
ecore_wl2: Make Ecore_Wl2_Buffer struct private
Nothing needs these members anymore. If need arises in the future then
proper getter/setter functions can be added.
Derek Foreman [Thu, 30 Nov 2017 18:48:08 +0000 (12:48 -0600)]
ecore_wl2 wayland_shm: Move surface functions into ecore_wl2
Finish pushing these all into ecore_wl2
Derek Foreman [Thu, 30 Nov 2017 18:20:01 +0000 (12:20 -0600)]
wayland_shm: Rename all the evas_dmabuf functions
These are going to find a home in ecore_wl2, and this is the last
step before moving them all over there.
Derek Foreman [Thu, 30 Nov 2017 17:59:41 +0000 (11:59 -0600)]
wayland_shm: No longer include dmabuf header in engine.h
There's no longer any need for code outside of evas_dmabuf.c to
know anything about dmabuf.
Derek Foreman [Thu, 30 Nov 2017 17:58:18 +0000 (11:58 -0600)]
wayland_shm: move surface structure to evas_dmabuf.c
This is no longer needed by the outbuf code.
Derek Foreman [Thu, 30 Nov 2017 17:56:23 +0000 (11:56 -0600)]
wayland_shm: Use wrapper functions instead of function pointers
switch to the new "API"
Derek Foreman [Thu, 30 Nov 2017 17:53:53 +0000 (11:53 -0600)]
wayland_shm: Wrap function pointers for surface
This is going to be an API soon.
Derek Foreman [Thu, 30 Nov 2017 17:44:23 +0000 (11:44 -0600)]
wayland_shm: Move surface free into surface_destroy
The caller shouldn't have to free this.
Derek Foreman [Thu, 30 Nov 2017 17:43:21 +0000 (11:43 -0600)]
wayland_shm: Remove struct _Dmabuf_Surface
It's all piled into Surface now.
Derek Foreman [Wed, 29 Nov 2017 21:56:04 +0000 (15:56 -0600)]
wayland_shm: Stop using outbuf and engine info in surface code
The surface stuff now no longer needs knowledge of those structures.
Derek Foreman [Wed, 29 Nov 2017 21:50:12 +0000 (15:50 -0600)]
wayland_shm: Pass alpha to surface_create
Stop extracting it from other structures, pass it directly.
Derek Foreman [Wed, 29 Nov 2017 21:46:31 +0000 (15:46 -0600)]
wayland_shm: pass the ecore_wl2_window to surface create
No longer extract this from the engine info.
Derek Foreman [Wed, 29 Nov 2017 21:31:17 +0000 (15:31 -0600)]
wayland_shm: Store width and height in surface struct
No longer query these from the outbuf.
Derek Foreman [Wed, 29 Nov 2017 21:24:02 +0000 (15:24 -0600)]
wayland ee: Don't clear the window pointer during session recovery
The same pointer is valid post recovery, and anything that used to
check this for NULL now checks that the window's display is NULL
which is handled in ecore_wl2 now.
Derek Foreman [Wed, 29 Nov 2017 21:17:36 +0000 (15:17 -0600)]
ecore_wl2: Return NULL from ecore_wl2_window_display_get during recovery
This should save us from having to set the window to in the engine info
NULL and then back during/after recovery.
Derek Foreman [Wed, 29 Nov 2017 20:52:43 +0000 (14:52 -0600)]
wayland evas: Remove Ecore_Wl2_Display from engine info
We've got the Ecore_Wl2_Window so we can always get the display from
that.
Derek Foreman [Mon, 27 Nov 2017 22:12:12 +0000 (16:12 -0600)]
wayland_shm: Remove Shm_Surface
only Dmabuf_Surface is used, so let's remove this and lose the union.
Derek Foreman [Mon, 27 Nov 2017 22:08:39 +0000 (16:08 -0600)]
wayland_shm: Move surface create into dmabuf code
These functions can be combined since there's now only the dmabuf
path.
Derek Foreman [Mon, 27 Nov 2017 21:27:23 +0000 (15:27 -0600)]
wayland_shm: remove useless wrapper function
This no longer has multiple call sites. Goodbye.
Andy Williams [Fri, 1 Dec 2017 16:44:34 +0000 (16:44 +0000)]
Revert "elm_code: Call parent theme_apply when we're applying"
This reverts commit
3e5e9943601fe84b7a3ebb1d4a0c9a10bb49bf27.
This crashes within Edi. The partial solution is not good enough.
Amitesh Singh [Fri, 1 Dec 2017 15:54:21 +0000 (00:54 +0900)]
focus: use elm_object_focus_get instead
Cedric Bail [Fri, 1 Dec 2017 08:38:09 +0000 (00:38 -0800)]
ecore_con: use eina_future based timeout for tests.
Cedric Bail [Thu, 30 Nov 2017 17:41:27 +0000 (09:41 -0800)]
elementary: move to use Eina_Future based timeout.
Yeongjong Lee [Fri, 1 Dec 2017 03:05:10 +0000 (12:05 +0900)]
efl_ui_spin_button: check focus state
Summary:
Because toggle_entry function control entry focus, it need to check
focus state in focus changed callback
Test Plan:
1. elementary_test - Efl.Ui.Spin.Button
2. Click the entry of spin_button
Reviewers: Jaehyun_Cho, CHAN
Reviewed By: Jaehyun_Cho
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5569
Amitesh Singh [Fri, 1 Dec 2017 01:59:58 +0000 (10:59 +0900)]
edje: fix NULL ptr dereference
Fixes CID 1383425
Marcel Hollerbach [Thu, 30 Nov 2017 18:28:18 +0000 (19:28 +0100)]
elm_genlist: use the correct elm_object_focus_get function
genlist does not get focus anymore, only its children are getting them.
fix T6425
Marcel Hollerbach [Thu, 30 Nov 2017 14:12:44 +0000 (15:12 +0100)]
efl_ui_focus_composition: fix docs
Andy Williams [Thu, 30 Nov 2017 17:37:19 +0000 (17:37 +0000)]
elm_code: Make test buttons more meaningful
And match window titles to buttons for clarity
Andy Williams [Thu, 30 Nov 2017 17:36:30 +0000 (17:36 +0000)]
elm_code: Call parent theme_apply when we're applying
Al Poole [Thu, 30 Nov 2017 13:57:25 +0000 (13:57 +0000)]
eina_file: make sure we use a stringshare when virtualized.
As the filename is now a stringshare, also make sure virtual
files use stringshares for the filename! Also when unmapping
we still need to test whether it is copied or not as unmap
will break on less tolerant architectures.
@fix T6449
Amitesh Singh [Thu, 30 Nov 2017 11:05:49 +0000 (20:05 +0900)]
edje legacy: replace Edje_Object with Evas_Object
Amitesh Singh [Thu, 30 Nov 2017 11:02:36 +0000 (20:02 +0900)]
edje: fix the typo in prev commit
Amitesh Singh [Thu, 30 Nov 2017 10:27:04 +0000 (19:27 +0900)]
Efl.Ui.Base: remove base_scale.get{} from interface.
base_scale for edje would be legacy now.
Amitesh Singh [Thu, 30 Nov 2017 09:47:57 +0000 (18:47 +0900)]
elm tests: show nstate & slider_interval widgets in Efl.Ui scope
Amitesh Singh [Thu, 30 Nov 2017 07:23:04 +0000 (16:23 +0900)]
Efl.Gfx.Shape: fix efl_super() call.
Amitesh Singh [Thu, 30 Nov 2017 06:58:04 +0000 (15:58 +0900)]
Efl.Gfx.Path: add missing EOLIAN prefixes to eolian functions.
Amitesh Singh [Thu, 30 Nov 2017 06:45:54 +0000 (15:45 +0900)]
Efl.Gfx.Shape: add missing EOLIAN prefixes to eolian functions.
Amitesh Singh [Thu, 30 Nov 2017 04:56:58 +0000 (13:56 +0900)]
Efl.Gfx.Shape: implement Gfx.Path.interpolate{}
This fixes the Eolian 'interpolate' redefine warning.
Jean-Philippe Andre [Thu, 30 Nov 2017 02:03:49 +0000 (11:03 +0900)]
evas: Animation is a property not method set+get
Jean-Philippe Andre [Wed, 29 Nov 2017 11:20:49 +0000 (20:20 +0900)]
eolian: Warn less on duplicate beta APIs
The check was only done on one of the two functions, resulting in some
unwanted warnings.
EOLIAN_WARN_FUNC_DUPLICATES=1 will show non-beta warnings.
EOLIAN_WARN_FUNC_DUPLICATES=2 will still show all warnings.
Jean-Philippe Andre [Wed, 29 Nov 2017 11:03:16 +0000 (20:03 +0900)]
efl: Introduce interface Efl.Dup
A few classes allow their objects to be duplicated, so they should all
use the same interface.
Also, rename VG's dup to copy_from as it's not conforming to the
definition of dup.
Jean-Philippe Andre [Wed, 29 Nov 2017 08:59:34 +0000 (17:59 +0900)]
evas: Implement scale API in proper EO fashion
This removes the internal function pointer for scale_update. This makes
all relevant classes implement the scale API in EO.
This removes the duplicate function in Efl.Canvas.Object and only uses
the one from Efl.Ui.Base interface.
This *seems* to be working as expected. Fingers crossed!
PS: I don't like the name Efl.Ui.Base. It's an interface for a few
common API's between Gfx, Canvas and UI levels... Maybe scale simply
doesn't belong there.
Jean-Philippe Andre [Wed, 29 Nov 2017 08:35:43 +0000 (17:35 +0900)]
edje: Move perspective to legacy
Note: Edje.Perspective is not bound to EO, and this is the only reason
why I'm moving this to legacy only. Marking as beta would mean the
legacy APIs would not be generated, so that would have almost the same
effect as moving to legacy.
It would be nice to actually support this in EO, though this seems like
a rarely used feature.
Ref T5315
Andy Williams [Wed, 29 Nov 2017 17:37:21 +0000 (17:37 +0000)]
elm_code: If showing line numbers don't resize at 10 lines.
Content will still shift at 100 but that should be less intrusive
Andy Williams [Wed, 29 Nov 2017 16:10:28 +0000 (16:10 +0000)]
elm_code: Don't bold beginnings of lines
Fixes T6444
Amitesh Singh [Wed, 29 Nov 2017 10:46:04 +0000 (19:46 +0900)]
focus: fix build break after previous commit.
Amitesh Singh [Wed, 29 Nov 2017 08:39:42 +0000 (17:39 +0900)]
focus: remove focus.get{} from widget.eo
This is taking care by focus manager now.
Jean-Philippe Andre [Wed, 29 Nov 2017 06:34:52 +0000 (15:34 +0900)]
edje: Move text_change_cb to legacy only
This should probably be replaced by a well defined signal.
Note: If edje sends signals on swallow/unswallow and text set/unset we
could simplify some of the elementary code, eg. for button's icon
handling. The theme should be handling the padding automatically, it's
not the elementary widget's role
Ref T5315
Jean-Philippe Andre [Wed, 29 Nov 2017 04:45:58 +0000 (13:45 +0900)]
edje: Move "preload" to legacy only
EO file API is still in flux, especially wrt. async loading. Let's just
keep this in legacy for now.
A few more patches and Edje.Object will reach its final form.
Ref T5315
Jean-Philippe Andre [Wed, 29 Nov 2017 03:05:10 +0000 (12:05 +0900)]
edje: Implement Efl.File.load_error
Don't create a new function with the same name, it's absurd.
Jaehyun Cho [Wed, 29 Nov 2017 04:43:21 +0000 (13:43 +0900)]
elm_part_helper: Change macro name for default content part
Yeongjong Lee [Wed, 29 Nov 2017 02:48:21 +0000 (11:48 +0900)]
evas: Remove duplicated code
Reviewers: raster, cedric
Reviewed By: raster
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D5552
Jean-Philippe Andre [Wed, 29 Nov 2017 02:47:43 +0000 (11:47 +0900)]
test: Adjust eo flag for popup test cases
Chris Michael [Tue, 28 Nov 2017 16:42:01 +0000 (11:42 -0500)]
elementary: Remove set but unused variables
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Woochan Lee [Tue, 28 Nov 2017 11:03:06 +0000 (20:03 +0900)]
efl_ui_spin: Support value change using mouse wheel.
Summary:
Enable value change using wheel.
(Up, Down key value change will be supported after D4933 dicussing.)
Test Plan: elementary_test efl_ui_spin test sample.
Reviewers: Jaehyun_Cho, jpeg, woohyun
Reviewed By: Jaehyun_Cho
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5546
Woochan Lee [Tue, 28 Nov 2017 11:02:53 +0000 (20:02 +0900)]
test_part_bg: Clean up code.
Summary:
Add spin class in ther test list.
Clean up code.
Reviewers: Jaehyun_Cho, jpeg, taxi2se
Reviewed By: Jaehyun_Cho
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5545
Jaehyun Cho [Mon, 27 Nov 2017 09:50:11 +0000 (18:50 +0900)]
efl_ui_popup: Replace Efl.Container to Efl.Content to rebase
Jaehyun Cho [Mon, 27 Nov 2017 06:31:37 +0000 (15:31 +0900)]
efl_ui_popup_alert: Remove expandable property for now
It needs more time to stabilize expandable property.
So the expandable property is removed for now.
The expandable property will be added later.
Jaehyun Cho [Wed, 15 Nov 2017 12:16:22 +0000 (21:16 +0900)]
examples: Add popup cxx example
Jaehyun Cho [Fri, 10 Nov 2017 08:56:34 +0000 (17:56 +0900)]
efl_ui_popup: Make backwall efl part object of Efl.Ui.Popup
Jaehyun Cho [Mon, 30 Oct 2017 11:34:42 +0000 (20:34 +0900)]
efl_ui_popup: Rename bg_set with backwall_set
Since "background" is used as a basic part property, "backwall" is used
to indicate the area behind efl_ui_popup.
Jaehyun Cho [Mon, 30 Oct 2017 11:03:01 +0000 (20:03 +0900)]
test_ui_popup: Move code for Efl.Ui.Popup classes from test_popup
Code refactoring to replace legacy APIs and move test code for
Efl.Ui.Popup and its sub classes from test_popup to test_ui_popup.
Taehyub Kim [Fri, 27 Oct 2017 09:11:58 +0000 (18:11 +0900)]
test_popup: modify Efl.Ui.Popup Sample Code
Summary: make Efl.Ui.Popup sample codes simpler
Test Plan:
1. run elementary_test -to efluipopup
2. test various options of efluipopup by clicking each button
Reviewers: Jaehyun_Cho, Blackmole, jpeg, cedric, woohyun
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5366
Taehyub Kim [Thu, 26 Oct 2017 07:33:31 +0000 (16:33 +0900)]
efl_ui_popup: add _calc_align function in sizing eval function
Summary: add _calc_align function in sizing eval function to show popup correctly.
Reviewers: Jaehyun_Cho, jpeg, cedric, thiepha, Blackmole, woohyun
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5373
Taehyub Kim [Thu, 26 Oct 2017 07:32:58 +0000 (16:32 +0900)]
efl_ui_popup: add timeout signal
Summary: add the timeout signal for user notification
Reviewers: Jaehyun_Cho, jpeg, cedric, Blackmole, thiepha, woohyun
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5372
Jaehyun Cho [Tue, 24 Oct 2017 13:30:49 +0000 (22:30 +0900)]
efl_ui_popup_alert: Define Clicked_Event structure
Jaehyun Cho [Tue, 24 Oct 2017 12:29:15 +0000 (21:29 +0900)]
efl_ui_popup: Replace group_add/del with constructor/destructor
Jaehyun Cho [Tue, 24 Oct 2017 09:34:36 +0000 (18:34 +0900)]
efl_ui_popup: Code refactoring to replace legacy APIs
JinYong Park [Tue, 24 Oct 2017 11:13:21 +0000 (20:13 +0900)]
efl_ui_popup: remove parent_window_get method
Summary: remove Efl.Ui.Popup's internal method "parent_window_get"
Test Plan: elementary_test -to efluipopup
Reviewers: jpeg, Jaehyun_Cho, woohyun, herb
Reviewed By: Jaehyun_Cho
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5363
JinYong Park [Tue, 24 Oct 2017 11:13:04 +0000 (20:13 +0900)]
efl_ui_popup: replace title_set to efl_text_set with efl_part
Summary: Replace Efl.Ui.Popup.Alert's title set method to using efl_text_set with efl_part
Test Plan: elementary_test -to efluipopupalert
Reviewers: jpeg, Jaehyun_Cho, woohyun, herb
Reviewed By: Jaehyun_Cho
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5359
Jaehyun Cho [Tue, 24 Oct 2017 03:20:53 +0000 (12:20 +0900)]
test_popup: Fix Efl Ui Popup Anchor test title
Taehyub Kim [Thu, 21 Sep 2017 08:21:18 +0000 (17:21 +0900)]
efl_ui_popup: add timeout property
Summary: add timeout property
Test Plan:
1. run elementary_test -to efluipopup
2. after 3 seconds, popup will be delete
Reviewers: Jaehyun_Cho, jpeg, woohyun, thiepha, Blackmole, cedric
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5205
JinYong Park [Wed, 20 Sep 2017 10:36:39 +0000 (19:36 +0900)]
efl_ui_popup_anchor: add Efl.Ui.Popup.Anchor class
Summary:
Add initial code for Efl.Ui.Popup.Anchor class.
It supports adding anchor object to popup.
Test Plan: 1. run elementary_test -to efluipopupanchor
Reviewers: Jaehyun_Cho, thiepha, herb, jpeg, cedric, woohyun
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5126
JinYong Park [Tue, 19 Sep 2017 07:23:43 +0000 (16:23 +0900)]
efl_ui_popup: remove unnecessary function call
Summary:
In _calc_align function, it could get align property through Efl_Ui_Popup_Data *pd directly,
but call align_get function previously.
Reviewers: Jaehyun_Cho, herb, thiepha, jpeg, cedric, woohyun
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5207