Doyoun Kang [Tue, 20 Jul 2021 06:57:12 +0000 (15:57 +0900)]
e_policy_wl: update tizen_policy_interface version to 9
According to update version of the tizen_policy interface,
enlightenment updates the tizen_policy_interface version to 9 from 8.
And add empty functions for new requests of tizen_policy
- tizen_policy_set_transient_for_below
- tizen_policy_set_parent_with_below
Change-Id: Ica6940a959a3284aa24ef3f1261c1333ec5332ff
Doyoun Kang [Tue, 20 Jul 2021 04:45:38 +0000 (13:45 +0900)]
e_client: add code to handle lowering transient_for_below window
When a child window which set transient_for_below and belog_to_parent properties
requests to lower, e lowers it only between siblings and doesn't lower it under
the parent's sibling.
Change-Id: Ie691779c4a833926a4c196e76e53c426849364ec
Doyoun Kang [Tue, 20 Jul 2021 00:38:22 +0000 (09:38 +0900)]
e_client: add code to handle raising transient_for_below window
When a child window which set transient_for_below and belog_to_parent properties
requests to raise, e raises it only between siblings and doesn't raise it on the parent.
In other words, the child window is always placed under the parent.
Change-Id: I167207784bec461865eff72b4105502b294d15c9
Doyoun Kang [Tue, 20 Jul 2021 00:30:01 +0000 (09:30 +0900)]
e_test_helper: set belong_to_parent flag in transient_for_below test helper
Change-Id: Ife6a87f8173faacf43e7beeffec15928b4c87d6b
Doyoun Kang [Mon, 19 Jul 2021 11:48:16 +0000 (20:48 +0900)]
e_client/e_policy_wl: refactoring ec's transient_for_always_on_parent value
1. Rename E_Client's internal value
- "belong_to_parent" from "transient_for_always_on_parent"
2. Add below APIs for setting/getting belong_to_parent property
- e_client_belong_to_parent_set
- e_client_is_belong_to_parent
3. Change relating aux hint key
- "wm.policy.win.belong_to_parent" from "wm.policy.win.transient_for.always_on_parent"
Change-Id: I9a6fe63d91d911b84f99149cf35c7ec0bcd9f326
Doyoun Kang [Mon, 19 Jul 2021 04:00:56 +0000 (13:00 +0900)]
e_client: refactoring code for e_client_lower
we extract method (_lower_belong_to_parent) from e_client_lower.
Change-Id: I2543abfbf16de6d052ecb8f5cf76413b0e98fb3d
Doyoun Kang [Mon, 19 Jul 2021 03:57:02 +0000 (12:57 +0900)]
e_client: refactoring code for e_client_raise
we extract method (_raise_belong_to_parent) from e_client_raise.
Change-Id: Ief4432f38418eefd6352d67bc104f581c80da3c2
Doyoun Kang [Mon, 19 Jul 2021 01:21:34 +0000 (10:21 +0900)]
e_client: add APIs for setting/getting transient_policy
we add APIs as below.
- E_API void e_client_transient_policy_set(E_Client *ec, E_Transient policy)
- E_API E_Transient e_client_transient_policy_get(E_Client *ec)
Change-Id: I728e9f0da3c6110925c3721745e279abb449e0d3
Doyoun Kang [Tue, 13 Jul 2021 07:13:40 +0000 (16:13 +0900)]
softkey service: support to handle the handler region for softkey service
we add code for setting the handler region of the softkey service to support showing
the softkey service by swipe up.
Change-Id: I2a00140de3359695454478c986f826f20f0923fe
Junseok, Kim [Wed, 14 Jul 2021 01:08:11 +0000 (10:08 +0900)]
e_map: enable direct render set to the new e_map
Change-Id: Ia681ed68913098b35934e3362859fdc46327bfcd
Seunghun Lee [Fri, 9 Jul 2021 08:16:15 +0000 (17:16 +0900)]
subsurface: Assign E_Subsurface to user data of wl_resource
Now that E_Subsurface was introduced for sub-surface, it's better to use
this as a user data of wl_resource of sub-surface. And E_Subsurface data
will be destroyed with destruction of an associated E_Client or of
wl_resource.
Change-Id: I9561df474127753a9c9d80ca9b595fed62363bd8
Seunghun Lee [Fri, 2 Jul 2021 07:57:49 +0000 (16:57 +0900)]
subsurface: Use E_COMP_WL_HOOK_DEL handler
This uses E_COMP_WL_HOOK_DEL handler for comp_data of sub-surface and of
its parent. It is meant to register a handler only for interesting
E_Client, not for all E_Clients unnecessarily as it was.
This will make code look clear and help with readability.
Change-Id: I6ed991fea6c3ff3119e98a828e44952b06e6d11a
Seunghun Lee [Fri, 9 Jul 2021 01:39:01 +0000 (10:39 +0900)]
e_comp_wl: Add a hook point for destruction of comp_data
This is to add a hook point, E_COMP_WL_HOOK_DEL which will be triggered
right before comp_data gets destroyed.
Many implementations of E20 have referred to ec->comp_data, but there
have been no way to find out when it's deleted.
So, we have had to check the validation of it before accessing it.
Through this patch, we can now ensure the validation of comp_data by
using a handler of E_COMP_WL_HOOK_DEL.
Change-Id: I7485d9b11a1ea46d500b4b0eac165e8529045cae
Seunghun Lee [Fri, 2 Jul 2021 05:38:30 +0000 (14:38 +0900)]
subsurface: Extract methods from create()
This is to extract methods from e_comp_wl_subsurface_create to enhance
readability.
Change-Id: I0803429cfa265df50b52d8d6a29874a835825b4d
Seunghun Lee [Tue, 29 Jun 2021 02:41:10 +0000 (11:41 +0900)]
subsurface: Add E_Subsurface data type
E_Subsurface is a data type wrapping E_Comp_Wl_Subsurf_Data, which can
be accessed from a sub-surface implementation.
This is for adding new field for sub-surface restricting of direct access
to the data.
Change-Id: I1e5b2a8ed840f390f7c92817b36990df1ef9258c
Doyoun Kang [Tue, 15 Jun 2021 03:20:55 +0000 (12:20 +0900)]
e_policy_stack: [2nd] apply stack policy for transient below
There was a case that the transient_below did not work.
This change will fix it.
This change is dependent on the below change.
- policy: apply stack policy for transient below
Change-Id: I3948a0b7948588ee3349e1c7f09099ae65de291e
Seunghun Lee [Fri, 2 Jul 2021 05:41:11 +0000 (14:41 +0900)]
Make sure parent_get is called with sub-surface
e_comp_wl_subsurface APIs should be called with sub-surface except for
e_comp_wl_subsurface_check() that is for checking if given E_Client is
for sub-surface.
This silences following error log.
E/E20 ( 294): ERR<eina_safety> src/bin/e_comp_wl_subsurface.c:1299
safety check failed: ec->comp_data == NULL
Change-Id: I220aff909ff0c754f44f7ed4c2f95e5a1475f513
Changyeon Lee [Tue, 11 May 2021 10:45:46 +0000 (19:45 +0900)]
e_comp_wl_tbm: Add internal func e_comp_wl_tbm_aligned_width_get
this patch is for supporting another RGB format
Change-Id: Icd5279c2c3f83164527a186dbf85f9084ff8d959
Doyoun Kang [Mon, 5 Jul 2021 08:19:17 +0000 (17:19 +0900)]
e_client: add e_client_is_internal API
We provide e_client_is_internal API to check the ec is internal or not.
FYI, if ec is null, then this function returns TRUE.
Change-Id: Icde7a82434132ea14c3d17d923b62f15e1569c8f
Seunghun Lee [Wed, 30 Jun 2021 02:52:55 +0000 (11:52 +0900)]
subsurface: Add and use a function for getting global coord
This provides a helper function for getting global coordinates of
sub-surface which is calculated by adding the coordinates of sub-surface
to the coordinates of its parent.
This is to not repeat calculation code and help with readability.
Change-Id: I46c99bbf7eb3c82e70aae1a5f0b5f7d16b2c00aa
Seunghun Lee [Thu, 24 Jun 2021 07:37:37 +0000 (16:37 +0900)]
subsurface: Add and use a function for getting position
This lets us be able to get position of sub-surface without accessing
the data of sub-surface by calling e_comp_wl_subsurface_position_get().
Change-Id: I930893a326990fb3991152dfb56e13a469f3be14
Seunghun Lee [Fri, 25 Jun 2021 05:45:00 +0000 (14:45 +0900)]
subsurface: Add and use a function for getting stand alone mode
This is to not access the data of sub-surface and to help with
readability.
Change-Id: Ia10c5247c61f6ec1a9bbc6ff4c33cbca48860d24
Seunghun Lee [Wed, 23 Jun 2021 05:24:54 +0000 (14:24 +0900)]
subsurface: Add and use functions for tizen_policy extensions
This is to seperate sub-surface code out from e_policy_wl.c file.
Change-Id: I65d84ce69dbe2c4effa5bfcf88452933d5df57c3
Junseok, Kim [Mon, 28 Jun 2021 10:38:16 +0000 (19:38 +0900)]
e_policy: changed E_CONTAIN TO E_INTERSECTS when checking EC is out of zone size.
There was bug that The EC is regards as out of Zone using E_CONTAIN function.
if the EC is placed at boundary of Zone, E_CONTAIN(zone geom, ec geom) returns EC is out of zone.
But, In this case, we should use E_INTERSECTS to consider remained EC part of inside of Zone.
Change-Id: Ia9e6f22bdc5b8d33ed55305b66b9475e04e82587
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
SooChan Lim [Fri, 25 Jun 2021 02:55:52 +0000 (11:55 +0900)]
e_comp_wl_tizen_hwc: remove the _e_comp_wl_tizen_hwc_cb_commit_feedback
The tizen_hwc_commit_feedback request has been removed.
Therefore, e20 remove the implemetation of this request.
Change-Id: I30f6f26a444e7522d06b0b02331d229bdaee336c
Seunghun Lee [Fri, 25 Jun 2021 04:49:22 +0000 (13:49 +0900)]
e_comp_object: Add null check
This silences error log.
E/E20 ( 301): ERR<evas_main> ../src/lib/evas/canvas/evas_ob:0155
calling smart object API on non-smart object!
Change-Id: I2d1785343da3bc295398527aff5db4a315d38dde
Seunghun Lee [Wed, 23 Jun 2021 02:23:14 +0000 (11:23 +0900)]
viewport: Separate code out from declaration
We don't mix declaration and code.
Change-Id: I88a7ae0eb42d9e984baf2400d9f0dff000dda3c3
Seunghun Lee [Wed, 23 Jun 2021 01:57:17 +0000 (10:57 +0900)]
viewport: Remove duplicated code
Use e_comp_wl_topmost_parent_get(), and remove _topmost_parent_get()
which did the exact same functionality.
Change-Id: I5ffd2315dcae247003a51d162c72046d9898f94b
Seunghun Lee [Wed, 23 Jun 2021 01:53:24 +0000 (10:53 +0900)]
subsurface: Add a function for getting parent of sub-surface
To get a parent of sub-surface without accessing particular sub-surface
data, this adds e_comp_wl_subsurface_panret_get() function. This should
also help with readability.
As the name implies, this should be called with a E_Client associated
with sub-surface instance, but it will be okay to be called with
not sub-surface instance. In that case, it will just return NULL.
Change-Id: I08f340424b46fdb54141fa41747ba55ad2ae6875
Changyeon Lee [Tue, 22 Jun 2021 05:57:15 +0000 (14:57 +0900)]
e_comp_wl_capture: Fix pixman format of ABGR,XBGR
Change-Id: I30248d88f654ab2a04d43ad8df9e58f7afebeb21
Changyeon Lee [Mon, 21 Jun 2021 07:59:03 +0000 (16:59 +0900)]
e_info_server: Support XBGR and ABGR format in dump hwc_wins
Change-Id: I28b73950c2793bea19dd4c79c263dffbfe5b4140
Seunghun Lee [Mon, 21 Jun 2021 08:16:57 +0000 (17:16 +0900)]
e_comp_wl: Add functions for wl_surface role
The Wayland protocol says a surface can have only one role at a time.
This means that a compositor is supposed to post an corresponding error
when wl_client tries to assign several roles to one wl_surface.
With the absence of the handling the case, some wl_client has already
been assigning a role of xdg_toplevel to a wl_surface which already has
a role of wl_subsurface.
This patch is meant to clarify the case and handle it in proper way.
Currently, only the subsurface implementation sets role, but later, all
relevant implementation has to set its wl_surface's role, and handle
error case to prevent wl_clients from misuse.
Change-Id: I40dce394d70bdddb4d5a8dd19858a386c1f16b38
Seunghun Lee [Mon, 21 Jun 2021 06:40:00 +0000 (15:40 +0900)]
subsurface: Add and use function for checking sub-surface
This lets us check if a E_Client is for sub-surface without accessing
particular data of sub-surface. And it should help with readability.
Note that DO NOT use this function to ensure the safety of accessing
"comp_data->sub.data". So, you cannot assume the validation by using
e_comp_wl_subsurface_check().
The function, by its name, doesn't imply anything about the safety at
all. It does only check whether given E_Client is for sub-surface.
Change-Id: I15f32c124ecf9a95a77b61095b0d855379d9c800
Changyeon Lee [Thu, 10 Jun 2021 06:26:35 +0000 (15:26 +0900)]
e_hwc_window: Synchronize frame in case of subsurface is synchronized committed
if subsurface is synchronized committed, frame should be synchronized
with parent surface.
so call e_hwc_window_present_sync when subsurface is displayed by hwc
but parent is displayed by gl compositing.
Change-Id: Iea291960f18c2bb13e6df1f4de06bbf0a3d9aca5
Changyeon Lee [Thu, 17 Sep 2020 05:49:12 +0000 (14:49 +0900)]
e_comp_wl: add E_COMP_WL_HOOK_SUBSURFACE_SYNCHRONIZED_COMMIT hook
Change-Id: Ibd4fffca6dc4b8f6a0942f82b3e1203d41944255
Doyoun Kang [Thu, 17 Jun 2021 06:47:58 +0000 (15:47 +0900)]
e_comp_object: add API - e_comp_object_transform_bg_color_set
we add a new API to support changing a color of the transform background object as below
- E_API void e_comp_object_transform_bg_color_set(Evas_Object *obj, int r, int g, int b, int a);
Change-Id: Ia3795ca1dfb50f6ce13fc2ef3148b6bb25e27995
Changyeon Lee [Wed, 16 Jun 2021 06:03:23 +0000 (15:03 +0900)]
e_hwc_windows: Fix deadlock when e_hwc_window is freed
after tbm_surface of E_Hwc_Window_Update is referenced,
it is possible that unreferenced api of tbm_surface
(tbm_surface_internal_unref) is called when e_hwc_window
is freed.
e_hwc_windows add rendererd_windows list to user_data of
tbm_surface of target_window
rendered_windows list has reference of e_hwc_window and
unreference of e_hwc_window can be called when rendered_windows
list is freed in user_data delete callback of tbm_surface.
but it cause deadlock problem when tbm_surface_internal_unref
is called in callback of tbm_surface
because libtbm doesn't allow that tbm_surface api is called
in callback of tbm_surface.
so e_hwc_windows doesn't use user_data of tbm_surface for
rendered_buffer and rendered_windows list.
they are added to member of E_Hwc_Window_Comp_Info.
E_Hwc_Window_Comp_Info isn't freed in user_data deleted
callback.
Change-Id: I40deba667bbfb7bbfba2807830e823faa90c07b4
Changyeon Lee [Wed, 16 Jun 2021 04:30:04 +0000 (13:30 +0900)]
e_hwc_windows: Rename Buffer_Comp_Info to Comp_Info
Change-Id: Iaf4f2ec2e00e8a8450e4368db017ffbba2b3e012
Junseok, Kim [Tue, 8 Jun 2021 07:47:38 +0000 (16:47 +0900)]
e_test_helper: Added iconify by client info for testcase
Added iconify by client information to wininfo and iconic state changed
signal.
Change-Id: I2afb8f5f83d53aec12a73c5728710e9ca186398b
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Changyeon Lee [Wed, 9 Jun 2021 10:04:11 +0000 (19:04 +0900)]
e_hwc_window: add Trace log in e_hwc_window_present_sync
Change-Id: I9ed612c04e07ba8a56ab6963965ede88c46098b2
Changyeon Lee [Wed, 26 May 2021 07:16:53 +0000 (16:16 +0900)]
e_video_hwc: Stop queuing video updates on hwc windows policy
An update for a video surface(the surface associated with
tizen_video_object protocol) has been queued to apply later if it's
created early before previous update is not yet applied to a screen.
It's to ensure applying all video updates to a screen without any frame
drop.
But this operation makes synchronizing updates between video frame and
graphics frame so difficult.
Additionally, the wayland client is able to throttle frames on its own
by using frame callback.
So, this patch is to attempt to disable the queuing video updates
experimentally only on hwc windows policy.
Change-Id: I02bbda8bb51688a227f15bfa93a9991183cba064
Changyeon Lee [Thu, 6 May 2021 11:29:12 +0000 (20:29 +0900)]
e_hwc_window: Synchronize frame in case of surface and subsurface are transformed
e_hwc_window_present_sync api for synchronizing hwc with gl compositing
if e_hwc_client_present_sync api is called,
tbm_surface and tdm_hwc_window_info of hwc_window will be updated
after gl compositing is done.
update data is dequeued when buffer for gl compositing is dequeued
andthen it is enqueued when buffer for gl compositing is acquired.
Change-Id: I076a92d63379b084eeeceffd6666a4f7bfa44157
Changyeon Lee [Thu, 29 Apr 2021 10:54:16 +0000 (19:54 +0900)]
e_hwc_windows: Add pending update data to debug info
Change-Id: Id540eef6786a29867472d56c3bd4c3c72d547331
Changyeon Lee [Thu, 29 Apr 2021 05:43:27 +0000 (14:43 +0900)]
e_hwc_window: Add e_hwc_window_pending_update_data_de/enqueue
this api for sync with gl compositing and hwc
Change-Id: I2625e3553d50299d52a9576d43437739658a4c8c
Changyeon Lee [Thu, 29 Apr 2021 03:11:33 +0000 (12:11 +0900)]
e_hwc_window: Reference tbm_surface when it set to e_hwc_window_buffer
Change-Id: Ie0fa60e0c85d8bc05793a09662d9c53d5b949039
Changyeon Lee [Wed, 28 Apr 2021 12:51:41 +0000 (21:51 +0900)]
e_hwc_window: Add E_Hwc_Window_Update_Data for managing update infomation
current : tdm_hwc_window
commit : latest tdm_hwc_commit
display : display done
Change-Id: Iac86c8fe5cc84bc45fa98bb66c2057127e8eaa01
Junseok, Kim [Fri, 11 Jun 2021 01:55:57 +0000 (10:55 +0900)]
e_info_client: remove duplicated range check while read uint from string.
Because of above line already checked out of bound of the ulong from string,
The check that greater than max of uint has no affect to result.
So, remove that check code.
Change-Id: I0ef61639664c592f02dbf6d4dd095bea46c4b596
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Doyoun Kang [Thu, 10 Jun 2021 02:47:29 +0000 (11:47 +0900)]
policy: apply stack policy for transient below
When a child window which sets E_TRANSIENT_BELOW policy is created,
then e places it to BOTTOM of children.
(example)
1. create transient_below child1
=> [Top] parent -> child1 [Bottom]
2. create transient_below child2
=> [Top] parent -> child1 -> child2 [Bottom]
Change-Id: I08044023e6be748bccaa58a2dc4941404ebe08aa
Seunghun Lee [Mon, 31 May 2021 06:50:35 +0000 (15:50 +0900)]
e_client_video: Use E_Client_Video instance for a parameter of function
Passes E_Client_Video instance instead of E_Client for internal
functions. In this way, the name and argument of functions in the module
would make more sense.
Change-Id: If0793486c47e97351ddefe764e0df91de392d6df
Seunghun Lee [Mon, 31 May 2021 04:40:36 +0000 (13:40 +0900)]
video: Destruct the E_Client_Video instance in E_CLIENT_HOOK_DEL
It listens to E_CLIENT_HOOK_DEL instead of E_EVENT_CLIENT_REMOVE to
ensure that ec is not deleted object during the instance lifecycle.
Now that inside e_client_video implementation it can be sure that ec
is not deleted object, no need to check if ec is deleted object.
Change-Id: I6060dd6e6accee5175dffa661c3b67372c9695f0
Junseok, Kim [Tue, 8 Jun 2021 04:28:04 +0000 (13:28 +0900)]
e_map: free used e_map pointers for fix memory leak
before evas_object_map_get didn't need to free their returned evas_map object.
but from previous patch that e_map added, e_comp_object/client_map_get functions are allocate memory.
so, all of e_map must be freed after use them.
Change-Id: I0d680de8026cec062871933b967ae78e1795c637
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Wed, 26 May 2021 03:42:05 +0000 (12:42 +0900)]
e_map: use E_Map APIs instead of Evas_Map
E_Map is wrapper API of Evas_Map.
this patch replaces all of Evas_Map function and variable to E_Map.
Change-Id: Ic0cb89fdbc24ef83d46bd2a7ea21eef6c5657dbf
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Mon, 17 May 2021 09:05:31 +0000 (18:05 +0900)]
e_map: Added wrapper APIs for evas_map
Evas_Map used in many functions for effect, zoom and etc.
But, we couldn't manage all of Evas_Map used by modules.
and there're so many duplicated codes to doing same operation.
For easy maintenance and increase reusability of Evas_Map, added E_Map wrapper APIs for it's first step.
Change-Id: I6c0dc2a88a43a545bc0f62dba591e4c9129730d3
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
SooChan Lim [Mon, 7 Jun 2021 03:08:38 +0000 (12:08 +0900)]
e_comp_wl_tizen_hwc: implement the create_commit_feedback request.
This request has the same implementation as commit_feedback request.
The implementationfor commit_feedback request will be removed later
because the commit_feedback request will be deprecated.
Change-Id: I8abc3c6b2001bc0b91955db2d8d1634eb1a8383c
Junkyeong, Kim [Fri, 4 Jun 2021 11:23:31 +0000 (20:23 +0900)]
e_hwc_windows: Erase unnecessary condition
Change-Id: Ie6df3ceaf697dd73163ce5a333fde1716fd03f68
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Junkyeong, Kim [Fri, 4 Jun 2021 11:21:43 +0000 (20:21 +0900)]
e_hwc_windows: Set and unset external window
The external window will not be evaluated in _e_hwc_windows_changes_update.
Change-Id: I0a84c51be2a065712c60a50c630422830496326f
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Junkyeong, Kim [Fri, 4 Jun 2021 11:18:51 +0000 (20:18 +0900)]
e_hwc_window: Add is_external flag and APIs
To check external window, use is_external flag.
Change-Id: I94f85c275fab29823ff16bdf268c474b51a0aa88
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Junseok, Kim [Fri, 28 May 2021 01:20:57 +0000 (10:20 +0900)]
e_client: remove focus_defer_unset call when revert focus in focus calculate
When the focused window is freed, if there're focusable window below the focused window,
there is a bug that focus calculation may occur two times due to defer focus unset after revert focus.
For fix this bug, remove focus_defer_unset when focus be decided by revert_focus of focus_calculate.
Change-Id: I41064c4c36254eb7b0dc144523934f9b27dfe970
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Seunghun Lee [Mon, 24 May 2021 09:26:59 +0000 (18:26 +0900)]
e_foreign_shell: No longer send destination/transform_changed events
These events are no longer supported by the wtz-foreign protocol.
Because there is no use case.
Change-Id: I7ba2792cb7097a014893048fb3e07c08ea0b05e5
Doyoun Kang [Wed, 26 May 2021 02:37:50 +0000 (11:37 +0900)]
winfo: support basic_op_gen option
We've added basic_op_gen option to winfo (enlightenment_info).
This option generates some operations (such as lower, activate).
usage:
winfo -basic_op_gen {window_id} {operation}
example:
winfo -basic_op_gen 0xb84b3aa0 lower
winfo -basic_op_gen 0xb84b3aa0 activate
Change-Id: Iaf3848a7a7f1d920a09295ef2ce7caa00900b963
Seunghun Lee [Tue, 25 May 2021 04:13:56 +0000 (13:13 +0900)]
e_foreign_shell: Update destination and transform of foreign shell
If foreign shell is newly created client and surface is committed,
then the state of foreign shell for not only visibility but also
destination size and transform has to be updated to the same of
exported shell's one.
Otherwise, the state of foreign shell can't be updated in forever until
the state of exported shell gets updated.
Change-Id: I953bafaf114bf86354fbfac25268e9364d8bd5c2
Seunghun Lee [Mon, 24 May 2021 09:08:09 +0000 (18:08 +0900)]
e_foreign_shell: Add functions for handler of destruction of exported_shell
Just to improve readability. No functional changes.
Change-Id: I415d3e07eedbfdc739c0a59bece0fdae103c8ca5
Seunghun Lee [Mon, 24 May 2021 02:36:15 +0000 (11:36 +0900)]
e_foreign_shell: Remove repeated assignment
This assignment will be made by _e_foreign_shell_exported_link().
Change-Id: I29e49f50636f4de7d91f962ee41c5af0c42f7158
Seunghun Lee [Thu, 20 May 2021 04:00:53 +0000 (13:00 +0900)]
e_foreign_shell: No longer use embedded client concept
There were some tricky side effects because of the concept of embedded
client which used smart object mechanism for re-stack operation. So,
this patch removes using the concept, instead it gives the
e_foreign_shell responsibility for re-stacking on its own.
This also reverts following patchs which are no longer used:
commit
8b545ca9e79ef2c06fc383cf9cbc788d4561e1e7.
Revert "e_comp_object: Set an embedded E_Client as comp_object ..."
commit
fd9f1eb3cc89980295d923894ea5e016a1a360c1.
Revert "e_client: Introduce a way of embdding a client to ..."
Change-Id: I912e038da129665b5ba6a62fe7c94aa8dce89176
Doyoun Kang [Tue, 18 May 2021 03:14:13 +0000 (12:14 +0900)]
e_process: change process' state when visibility is changed
When the visibility of window is changed to fully-obscured, e works as below.
If ec->visible flag is false, e calls _e_process_windows_act_no_visible_update.
And if not, e just calls _e_process_freeze.
There was a bug that the window which was under pending-uniconify canceled
uniconify (in other word, its state remained to iconic), e didn't send the
BACKGROUND event to the application process.
Change-Id: Iba70cb70beedfc625bce21162da19bdbe8cbaca2
Seunghun Lee [Wed, 12 May 2021 07:16:02 +0000 (16:16 +0900)]
e_comp_wl: Check return value of e_comp_wl_video_init()
It checks return value and leave an error log when it failed.
Change-Id: I0ee2b063862c1a96d84a3e828bc7b5ff27b88785
Seunghun Lee [Wed, 12 May 2021 07:13:03 +0000 (16:13 +0900)]
e_comp_wl_video: Make boolean for return value of init()
This patch is to improve consistency and readability.
And there is no functional changes.
Change-Id: I55bd4bf3d34f0285bdf8fbdbee6638f0bec29cf3
Seunghun Lee [Wed, 12 May 2021 04:56:13 +0000 (13:56 +0900)]
e_comp_wl_video: Remove superfluous assignment
No need to assign initial value because it checks return value as an
error indicator before using outcome arguments.
Change-Id: I456143346cbc1e1cd7840b5619376635b5168830
Seunghun Lee [Wed, 12 May 2021 04:52:40 +0000 (13:52 +0900)]
e_comp_wl_video: Extract methods to improve readability
No functional changes.
Change-Id: I96092bed1bc90beb52279cfd3c8111586677437a
Seunghun Lee [Wed, 12 May 2021 04:34:56 +0000 (13:34 +0900)]
e_comp_wl_video: Remove superfluous check code
The user data of wl_resources must be valid. Otherwise, it should be
failed loudly.
Change-Id: Ie8547e3616d1106ec6c38333a047f953f66ca4a8
Seunghun Lee [Tue, 11 May 2021 07:46:57 +0000 (16:46 +0900)]
e_comp_wl_video: Separate declarations from code
Change-Id: I5a79f13a5222c98b07d6e1bc1b6b38f802839bd9
Seunghun Lee [Mon, 10 May 2021 05:59:44 +0000 (14:59 +0900)]
e_comp_wl_video: Initialize fields when init function is success
The fields that should be initialized during initlizing e_comp_wl_video
should be stayed as it is if any required tasks are failed.
Change-Id: I71ba204d914db3dbcb8a6fad85ea91363952dc01
Junkyeong, Kim [Fri, 14 May 2021 10:01:55 +0000 (19:01 +0900)]
e_info_server: Erase res_rotation_set value in screen_rotation_pre option
If the previous rotation value is 0, 90 and 270 value cannot be adapted.
Only 180 can be adapted if width and height is different.
So do not have to check the return value to save config.
Change-Id: Ia22590ccb01f74e7a8004128edaf7ec18e1b56d5
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Changyeon Lee [Wed, 12 May 2021 11:30:06 +0000 (20:30 +0900)]
e_explicit_sync: Fix dangling pointer problem of E_Explicit_Sync_Buffer_Release
if wl_resouce of E_Explicit_Sync_Buffer_Release is destroyed by client,
E_Comp_Wl_Buffer_Ref access dangling pointer of E_Explicit_Sync_Buffer_Release.
for this problem, resource is set by null when it is destroyed and
E_Explicit_Sync_Buffer_Release is freed when
e_explicit_sync_buffer_release_destroy is called.
Change-Id: Ia2959ae3c1389e3122216aca3e1d2c75df8dcf77
Junseok, Kim [Wed, 12 May 2021 08:44:57 +0000 (17:44 +0900)]
e_test_helper: Added iconic state changed signal
send iconic state changed signal when iconic state changed of test client.
it contains native window(uint) id and iconic state(Eina_Bool).
Change-Id: I33c687f32b8a7bab1e4d5e4031bc3c2447a1117d
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Doyoun Kang [Tue, 11 May 2021 00:36:07 +0000 (09:36 +0900)]
e_policy: restore ec's layer when floating is unset
When a floating mode was unset, e restored ec's layer to NORMAL only.
However, the layer of ec can be another layer (such as NORMAL, NOTIFICATION, etc.).
So, we changed code to restore its layer to original layer.
Change-Id: Ie528e6ede7d12d9fd795b0266d04f473d301fb63
Seunghun Lee [Mon, 10 May 2021 05:22:45 +0000 (14:22 +0900)]
e_presentation: Remove dead code
The presentation->global is NULL in any case of failure.
Change-Id: I586e30613f96c3ff2314dbf67246233f8d0f9b70
Doyoun Kang [Fri, 7 May 2021 02:16:55 +0000 (11:16 +0900)]
e_client/e_policy: support always_on_parent feature
If child window set the always_on_parent aux_hint, then it always has to be placed
on the parent window even if it request to lower window.
Currently, this feature can be set by below aux hint key.
- wm.policy.win.transient_for.always_on_parent
Change-Id: Icd26fabf437a976df52018f4ad9587ac9f0f3390
Seunghun Lee [Fri, 7 May 2021 06:54:36 +0000 (15:54 +0900)]
subsurface: Remove unused API, e_comp_wl_subsurface_stack_update()
It's deprecated, and no longer used anywhere.
Change-Id: I839f53d899bffcd15955f7a1f516e53041d92152
Seunghun Lee [Fri, 7 May 2021 06:44:50 +0000 (15:44 +0900)]
e_poilcy_stack: Remove unnecessary updating stack order of sub-surfaces
Updating stack order of sub-surfaces in this implementation can be
removed since the follwing patch was introduced.
d1e43082e subsurface: Fix messed up stack order of sub-surface
The stack order of sub-surfaces have been being handled by subsurface
implementation since then.
Change-Id: Id05018c3baa7516c3bad81441786c8697aabb044
Seungjin Park [Thu, 6 May 2021 05:55:36 +0000 (14:55 +0900)]
e_policy: Add E_POLICY_HOOK_CLIENT_STACK_MODE_SET hook
Add a new hook in policy_wl to let modules know stack mode change of clients
Change-Id: I8bd2e30ae7481acbe6ca313d6fea55b8e98db0d6
Signed-off-by: Seungjin Park <sj8808.park@samsung.com>
Doyoun Kang [Wed, 28 Apr 2021 09:54:07 +0000 (18:54 +0900)]
e_policy_stack: fix build break on 64bit env
Change-Id: I96518c6d7e71c793c4cf302e6729cb0a4ca2bdb2
Seunghun Lee [Wed, 28 Apr 2021 09:38:10 +0000 (18:38 +0900)]
e_comp_object: Revert patchs related to transp object causing issue
The problem that the transform bg object hided video displaying underlay.
It turned out because tranp object has been added to smart member and it
didn't work render copy operation because its parent wasn't in render copy
operation.
Revert all related patchs. And this issue will be handled in the future.
Revert "e_comp_object: Remove obsolete stacking transform transp object"
This reverts commit
f40c1f181df2b6f76f70c597bbef8daf11726c0d.
Revert "e_comp_object: Fix wrong punch of window due to transp object stack order"
This reverts commit
abb8da9ff51788322cfa0542d70f089e1d53d095.
Revert "e_comp_object: Add transp object as a member object of smart object"
This reverts commit
421731114b1c832cddc2b5eb8232d1e96cfc0751.
Change-Id: I115fd4bb95960c907a5d09b9917e16a766a1fd4d
Doyoun Kang [Wed, 28 Apr 2021 08:19:22 +0000 (17:19 +0900)]
policy/shell: refactoring parent_set/transient_for code
we changed code to use e_policy_stack_parent_set and e_policy_stack_transient_for_set
while handling requests for parent_set and transient_for_set
Change-Id: I7f010cf9e025f51e81b0e76b48199c876a2f2a0b
Doyoun Kang [Tue, 27 Apr 2021 08:15:33 +0000 (17:15 +0900)]
e_policy_stack: refactoring transient window code
- remove E_Policy_Stack structure
- merge handling transient window code to e_policy_stack_transient_for_apply
from e_policy_stack_hook_pre_post_fetch and e_policy_stack_hook_pre_fetch
Change-Id: I1f465d67c4c20e5302da5c6dc032fccbcc6e74bd
Junseok, Kim [Wed, 28 Apr 2021 04:49:20 +0000 (13:49 +0900)]
e_test_helper: fix build warning
Change-Id: I1672775b4e332806482c4d2d36699c769d3d5ff3
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Wed, 21 Apr 2021 05:25:36 +0000 (14:25 +0900)]
e_test_helper: Added Focused variable to FocusChanged signal
Change-Id: If9ea7823bbe1489ea0b23a6096256b4c7aaa469b
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Tue, 27 Apr 2021 03:49:53 +0000 (12:49 +0900)]
e_test_helper: Added get_aux_hint method
Added method to get current aux hint data.
It requires aux hint name, and returns current applied aux hint data(ID, hint, value) matched with name.
Change-Id: I5af6f20c4ca3952422be55881b48d2036c145033
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Seunghun Lee [Tue, 27 Apr 2021 08:26:28 +0000 (17:26 +0900)]
e_foreign_shell: Fix typo
Change-Id: I2533b1ad0e38e760b2ed7582c17afee0a2c957a6
Seunghun Lee [Tue, 27 Apr 2021 04:18:43 +0000 (13:18 +0900)]
video: Change to idle_enterer from ecore_job
This patch changes video to use idle_enterer from ecore_job.
If geometry of a video changes by animating run by ecore_animator or so,
then the video cannot have chance to work before the hwc output.
Consequently, all changes with the video missing gets applied to the
output.
The occurrence order of each handler was as follow:
job(video) -> animator(animating) -> idle_enterer(hwc output)
The changed order is as follow:
animator(animating) -> idle_enterer(video) -> idle_enterer(hwc_output)
Change-Id: I558178883efcb68d6b2fb6ef8c138aea99b6eaae
Doyoun Kang [Mon, 26 Apr 2021 04:58:47 +0000 (13:58 +0900)]
e_pixmap: do not unset/clear pixmap in e_pixmap_parent_window_set
We've modified code to set the E_Pixmap's parent window only.
If we need to set unusable and clear the pixmap, then we have to call these
functions explicitly.
Change-Id: I190b79c73f1c76eb830c853f7c23138f1c4b5050
Seunghun Lee [Fri, 23 Apr 2021 02:39:01 +0000 (11:39 +0900)]
e_foreign_shell: Fix build error
The flipped transform isn't supported by wtz_foreign protocol.
Change-Id: I31eea013846ed940645e3392f9160b6e037caecd
Seunghun Lee [Fri, 9 Apr 2021 05:41:03 +0000 (14:41 +0900)]
Support wtz-foreign protocol
This is an initial commit to support wtz-foreign protocol.
This is to support out-of-process video playing surface.
wtz-foreign protocol is to enable one client to share its resources to
another client.
The client which exported a reference of foreign shell then can change
attributes - such as size, orientation, and map state - of foreign shell.
So, the client which import a foreign shell can draw its contents onto a
surface without concerning about attributes such as size like as
mentioned.
The e_foreign contains implementation of wtz_exporter and wtz_importer.
And e_foreign_shell contains implementation of wtz_exported_shell and
wtz_foreign_shell.
Change-Id: Idec6194d9b57e3346167eaa4ab6537b4d59c3393
Seunghun Lee [Wed, 21 Apr 2021 09:50:30 +0000 (18:50 +0900)]
e_comp_object: Set an embedded E_Client as comp_object data
When evas_object_data_get(obj, "E_Client") called, it will return
embedded E_Client instead of original E_Client.
This is to hide details of embedded concept.
Specifically, e_hwc_windows implementation will make a visibile window
list with an embedded E_Client, not a container.
Change-Id: I94c850d262c1357eb28f635b2ec3e97ac37c06ba
Seunghun Lee [Wed, 21 Apr 2021 09:34:11 +0000 (18:34 +0900)]
Revert "foreign: Support wtz-foreign protocol"
Since the foreign "surface" concept has been abandoned, the
implementation of e_foreign needs to be re-written.
(See wayland-extension)
So this patch reverts commit
0fab24dfc3e1bef3e6131aa7272cf51cdc81cbb9,
before making a commit to adopt new concept, foreign shell.
Change-Id: I4116dcdb41f1d0f72a7d766c3135c02be95863ca
Changyeon Lee [Tue, 30 Mar 2021 09:40:18 +0000 (18:40 +0900)]
e_comp_object: defaultly use evas_object for input event instead image object
map_input_object is shown for avoiding the event transform by evas_map
which is applied at effect object.
when comp_object is set by unredirect, map_input_object is
hidden even if buffer of client is rotated acoording to screen rotation.
so if client is set by redirect, map_input_object receive input event
and if client is set by unredirect, cw->obj receive input event.
it doesn't have a problem in normal cases because the size of
map_input_object(redirect) and cw->obj(unredirect) are the same size
of window(ec size).
but it has a problem in case of down/up input event
1. down event is signaled and cw->obj receive event
comp_object is unredirect and size of cw->obj is same window size
ex) widow size (1080x1920), cw->obj (1080x1920)
2. comp_object is redirect and map_input_object is shown and
cw->obj is resized according to buffer size(rotated).
ex) window size (1080x1920) cw->obj (1920x1080)
map_input_object(1080x1920)
3. up event is signaled but cw->obj receive event
so evas send input coordinate with current cw->obj size
because evas can't change evas_object which is received between down
and up event
it causes the wrong coordinate of input event is sent to the client.
so map_input_object is renamed default_input_object and
default_input_object use for input event instead image object(cw->obj).
Change-Id: I277c3804c3a2a73d2562cdbdc98cca9dfda40645
Doyoun Kang [Wed, 21 Apr 2021 05:44:53 +0000 (14:44 +0900)]
e_hints: modify code for e_hints_aux_hint_add_with_pixmap
If there exist the aux_hint which has a same ID and its name is not same to the 3rd
parameter (name), then we replace its name and value to new name and value.
Change-Id: I383f45b3518fcbc97a09102c45fb9905eb2dee93
Junseok, Kim [Wed, 14 Apr 2021 03:37:14 +0000 (12:37 +0900)]
e_test_helper: Added timeout set method
Added timeout set method.
It could set/unset timer of Testcase, and can set time of timer.
Change-Id: Ia023a4c8c49329e9ac60fbd6f5112707eaa9251d
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Tue, 13 Apr 2021 07:17:32 +0000 (16:17 +0900)]
e_test_helper: add method for add/del supported_aux_hint
Change-Id: Ie83bbb48b7a3f66a4e70a7f84172d9866bfd2671
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Thu, 1 Apr 2021 07:58:30 +0000 (16:58 +0900)]
e_test_helper: added aux hint changed signal
Added aux hint changed signal to registered test window.
It hooks E_CLIENT_HOOK_AUX_HINT_CHANGE of registered window and send "AuxHintChanged" signal to e-tizen-unittest.
Change-Id: Ib2549682a5c85f5755d82a1e1df45c10dfac8cdf
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>