Doyoun Kang [Tue, 7 Dec 2021 02:51:59 +0000 (11:51 +0900)]
e_comp_object: fix corrupt e_comp's layer inlist
There was a bug that the e_comp's layer inlist was corrupted.
This could be occurred when the window which has transient children and sub-surface changed its layer.
E remove a parent from the inlist, and then changed the layer of children and sub-surface.
In subsurface code, there is a callback function for EVAS_CALLBACK_RESTACK.
And it calls stack_above or stack_below to the parent.
But unfortunately, the parent was removed from inlist. So, inlist could corrupted in this case.
This patch resolve this problem.
Change-Id: I2018a7409366e73bc8bd67f2a547da8755225046
Junseok, Kim [Mon, 6 Dec 2021 10:05:00 +0000 (19:05 +0900)]
e_policy_stack: added code to check transient_for below order
There was a bug that the transient_for_below children stack was incorrect.
when there're child A and B(the child A was created first),
and client request transient_for_below B and A to parent.
then, the expected stack is [top] - Parent - B - A - [bottom]
but actual stack is [top] - Parent - A - B - [bottom]
This issue caused by the fetching order of child window.
To fix this issue, this patch makes check transient_for_below order when fetching transient_for.
This patch is similar with commit 40a650f
Change-Id: I711ec30fed00d3ae8f6ff77b70cceae7ac2e49de
Doyoun Kang [Wed, 1 Dec 2021 12:01:20 +0000 (21:01 +0900)]
e_policy_visibility: check ec's bg_state while handling lower operation
If the window set the bg_state, then e lowers it imediately when the window request to lower
Change-Id: If3be7cb5459fdfb31e22cf83e7e2cd74862e6513
Changyeon Lee [Thu, 25 Nov 2021 05:49:02 +0000 (14:49 +0900)]
e_hwc_window_queue: unset callback of wait usable in case of e_client is deleted
client queue can send wait usable reuqest even if e_client is deleted.
Change-Id: Iad4b8e5575350bc8cc484c836aa56dcc4bbb9fa8
Changyeon Lee [Tue, 23 Nov 2021 00:29:16 +0000 (09:29 +0900)]
e_hwc_window: fix accessing the hwc_window after it is unreferenced
Change-Id: Ic7b3c5f5455479947241a47b467a77100ac3731f
Changyeon Lee [Wed, 17 Nov 2021 10:26:09 +0000 (19:26 +0900)]
e_hwc_windows: call the presentation callback in case of hwc mode is full
if window is composited by target window but hwc mode is full,
the presentation callback is not called.
this patch makes that the presentation callback is called
in commit data acquire and offscreen commit.
Change-Id: I7ae86408e33c8df27655979aecd5a13136d789a7
Changyeon Lee [Wed, 17 Nov 2021 09:45:24 +0000 (18:45 +0900)]
e_hwc_widnows: take presentation callback and feedback in offscreen commit
fix that presentation callback is not called and feedback is not sent
in case of offscreen commit
Change-Id: I60817a47ab4610b739759a5743710b872c65fa9f
Changyeon Lee [Wed, 17 Nov 2021 07:28:52 +0000 (16:28 +0900)]
e_hwc_window: add damage to target_window in presentation callback add
if module calls the hwc presentation callback add api in
hide callback of evas, the hwc presentation callback add api
can return error.
but module wants to know that when window is hidden in display.
so this patch adds damage to canvas instead return error.
Change-Id: Ib0738204b4e22ca638d2a6fb26c7a87e3f94ccfe
Junseok, Kim [Tue, 16 Nov 2021 08:21:28 +0000 (17:21 +0900)]
e_client: change resize mode reset timing of _e_client_resize_end
Change resize mode reset timing of _e_client_resize_end to before call
_e_client_action_input_win_del.
And removed useless temp values.
Change-Id: Ifb3e02962a462756d657459bd68cc4c49fea8521
Junseok, Kim [Tue, 16 Nov 2021 07:42:46 +0000 (16:42 +0900)]
e_client: added transform core update while move handle
There was a bug that when the ec that transformed is doing interactive
moving, ec isn't move before resize or transform core update called.
For fix this issue, call the e_client_transform_core_update when the ec
is transformed and change timing of set ec->moving.
Change-Id: I6334aba36963269c03bab0bed755b5c984b9d862
Junseok, Kim [Tue, 16 Nov 2021 07:32:03 +0000 (16:32 +0900)]
e_client: extract _e_client_move_handle function from mouse move
_e_client_move_handle is for handle interactive move of ec.
Change-Id: Ife87dc5122bbd986c3b6487b1efcfc7db9f4290f
Junseok, Kim [Tue, 16 Nov 2021 07:29:50 +0000 (16:29 +0900)]
e_client: added e_client_util_moving_get method to get ec is moving
Change-Id: Icd7104bed0c6ce539e01add497ae053b9f66a227
Changyeon Lee [Mon, 15 Nov 2021 08:16:53 +0000 (17:16 +0900)]
e_hwc_window_queue: do not unset user of queue if acquired queue_buffer is exist
unset user of queue when all queue_buffers are released, if queue isn't target.
because even if exported queue buffers are destroyed, queue buffer can be displayed
in case of client is destroyed.
Change-Id: I3d36140e550f41b170e95f68d93196f4c597be3e
Changyeon Lee [Mon, 15 Nov 2021 06:01:17 +0000 (15:01 +0900)]
e_hwc_window: add checking effect_running flag of the comp object
effect_running flag is set when object is animating by external module.
hwc should check effect_running flag even if it check animating of
the comp object.
Change-Id: Id53e3ae3dc415c7b1fa314dfb5499aedf79e1d8d
Changyeon Lee [Thu, 11 Nov 2021 08:16:58 +0000 (17:16 +0900)]
e_comp_wl_subsurface: fix leak of below_obj_map and transform_hook
Change-Id: Ia9bb926409de3c39b5a524e18660c04af86497b4
Changyeon Lee [Thu, 11 Nov 2021 04:11:49 +0000 (13:11 +0900)]
e_comp_wl_renderer: fix leak of E_Comp_Wl_Renderer_Surface
1. free E_Comp_Wl_Renderer_Surface in listener of destroy request
2. clear ec of renderer_surface when it is freed
Change-Id: I5238cdeb558bfacd82de085629ed8762ad6e1168
Sung-Jin Park [Sat, 5 Jun 2021 01:04:38 +0000 (10:04 +0900)]
e_input: fixed leak regarding ecore_device removal
Change-Id: Ib5049eed67ad5b6f9600dbe3c5e67bcf2fba8d87
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
Doyoun Kang [Fri, 12 Nov 2021 07:29:59 +0000 (16:29 +0900)]
Revert "e_input: fixed leak regarding ecore_device removal"
This reverts commit
df2baaee8044d11534192c57bb3aa058d5863b5b.
Change-Id: Ibb59da3e1f213e6d4875ba11eaffc0aaba893aa8
Sung-Jin Park [Sat, 5 Jun 2021 01:04:38 +0000 (10:04 +0900)]
e_input: fixed leak regarding ecore_device removal
Change-Id: I4eb0c6e7d74f48cf067d3f379e268e74a4ff51e4
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
Doyoun Kang [Fri, 12 Nov 2021 04:13:22 +0000 (13:13 +0900)]
e_desk: remove previous animator before running new animator
Change-Id: Ide9d26a512ac989cedb6e675e5aa2d607d4107bd
Doyoun Kang [Fri, 12 Nov 2021 03:35:49 +0000 (12:35 +0900)]
e_desk: fix e_desk_zoom_is_animating
There was a bug that e_desk_zoom_is_animating returns false even though it is running animation.
Change-Id: I105c2b278bcd085c1fb639f5840c1e954e67c1a6
Junseok, Kim [Fri, 5 Nov 2021 04:48:40 +0000 (13:48 +0900)]
e_client: focus unset when there's no focusable window using topmost focus policy.
Change-Id: I8ccc5fe2ed960a39bf9a2c7095c892d7794f4afe
Doyoun Kang [Thu, 4 Nov 2021 06:24:24 +0000 (15:24 +0900)]
e_policy_stack: remove restack children code in e_policy_stack_below/above
There was a bug that the transient_below children was placed above on the parent window
when the parent restacked using stack_above or stack_below.
This was because there was no check code the children's transient_policy.
To fix this problem, we just remove code which restack children in e_policy_stack_below/above
because if the window's stack is changed, then its children will be restacked in
_e_client_cb_evas_restack().
Change-Id: Ib7f832f2d44c3d22b3b924b489206210f9e2cd99
Junseok, Kim [Wed, 27 Oct 2021 04:43:31 +0000 (13:43 +0900)]
e_policy_visibility: remove wait_buf_attach_grab_list with cloned list
Change-Id: Ib3a33f38e94f81fa21d065a7355028cbaa258572
Doyoun Kang [Wed, 27 Oct 2021 04:17:46 +0000 (13:17 +0900)]
e_policy_wl: change log for tizen_policy_show/hide
Change-Id: I70237d9ce7cca14582f350f9fd1ce310fb9f8822
Junseok, Kim [Mon, 25 Oct 2021 08:28:20 +0000 (17:28 +0900)]
e_client: fix resize rect geometry of transformed window.
There was a bug that abnormally presented geometry of resize rectangle of transformed window.
(refer to commit
aa6c0810fd4d45db6f332f8c4b328f33520ca481)
this patch fixes this issue by adjust transformed geometry to the resize rect.
Change-Id: Ic28d0e7b24a204ee3374998f9a22ec5e9316e6cb
Junseok, Kim [Mon, 18 Oct 2021 05:00:16 +0000 (14:00 +0900)]
e_comp_object: set defer move when the ec is interactive resizing
Flickering issue is occurred by using resize_mode as "Top" or "Left" or "Top-Left".
For fix this issue, used defer move until next commit when interactive resizing.
Change-Id: I9aacfe89feba6f56dc24406064b47fde847a6739
Changyeon Lee [Thu, 7 Oct 2021 05:26:30 +0000 (14:26 +0900)]
e_comp_wl_subsurface: Do not resize the below_obj for optimizing gpu memory
before this patch, the below_obj is resized according to size of object of ec.
in normal scenario, the below_obj does not use extra gpu memory.
but the below object use extra gpu memory when evas_map is applied to
the below_obj.
(size of extra gpu memory is same size of the below obj)
this patch is for optimizing gpu memory.
the below_obj is resized by 1x1 when it is created and evas_map is applied
with size of object of ec.
it makes the below obj always use extra gpu memory for 1x1 size.
Change-Id: Ied098c06b0cd153bc1218155ae385c2848a9d4be
Junseok, Kim [Wed, 13 Oct 2021 00:40:44 +0000 (09:40 +0900)]
e_client: added to show resize rect while interactive resize instead of real time resize
This patch changes to show resize rectangle while interactive resizing.
Known Issue: If the resize evoke evas_object_move(resizing top-left edge),
then it can show flickering during move->resize sequence.
Known Issue2: Transformed window could be resize abnormaly
Change-Id: I74ea8df8f844cd68bf059979764a939cc7d78733
Doyoun Kang [Mon, 18 Oct 2021 06:10:41 +0000 (15:10 +0900)]
e_client: check buffer_flush flag in e_client_uniconify
There was a bug that the visibility toggled on/off as below scenario.
1. WinA set buffer_flush and deiconify_update to 0.
2. WinA attached Null buffer.
3. Turn off the screen.
4. Turn on the screen.
5. WinA's visibility was toggled on and off continuously
This was because we didn't consider buffer_flush and deiconify_update states in
e_client_uniconify.
So, we add code to check the window's buffer_flush and deiconify_update state.
If those values are set to all 0, then e shows the window in e_client_uniconify.
Change-Id: I32e030689c04608510783df367d9c30657e8777b
Duna Oh [Thu, 14 Oct 2021 06:49:57 +0000 (15:49 +0900)]
e_comp_wl: clip input_region rect to state->input rect
There was a bug that input_area was set larger than client requested.
The result tiler 'src' of eina_tiler_intersection() shouldn't be larger
than any of 'state->input' and 'tmp'. We clip it to state->input.
Change-Id: I5cfa599f6f96989c23a44cd7bbaa0b60aa1c40e7
Doyoun Kang [Thu, 14 Oct 2021 10:26:30 +0000 (19:26 +0900)]
e_policy_wl: check map state while unsetting background state
Change-Id: Ia0f5e6c13f2be7be58cf045a4573d6d2f83ade03
Doyoun Kang [Fri, 8 Oct 2021 03:32:38 +0000 (12:32 +0900)]
e_policy: fix bug for uniconify window by wm
There was a bug that the fully-obscured partial window run uniconify_window by wm
when the new alpha opaque window was launched.
Suppose that the window stack is as below.
[top] WinA (full size - 0,0,1920x1080) - WinB (partial - 1,1,1920x1280) [bottom]
If we launch new WinC which set an alpha opaque, window stack should be as below.
[top] WinC (full size, 32bit, alpha opaque) - WinA - WinB [bottom]
In this case, WinB must not change visibility and iconic state.
But, e changed WinB's iconic state to uniconic and sent a pre-unobscured event.
This was because we didn't clip the geometry of the window by e_zone's geometry.
So, we add code to clip the window's geometry by the zone's geometry.
Change-Id: Ie3de71ae4c6c1b35e15f5ca478b3c2cac94dd08a
Changyeon Lee [Thu, 7 Oct 2021 01:21:39 +0000 (10:21 +0900)]
e_hwc_window: Update the comp object after redirected is set
after below patch, the comp comp object isnt updated if
it is not redirected.
so Update the comp object after redirected is set
8bb957e90 e_comp_object: Do not update the comp object if it is not redirected
Change-Id: Ia1b1dd754b9b3b2b79db89ce04ce4aca04d868c0
Doyoun Kang [Thu, 7 Oct 2021 06:21:58 +0000 (15:21 +0900)]
e_comp_object: add name for each evas_object rectangles
Change-Id: I96b5030386473c883a632a8745924e451430dc78
Changyeon Lee [Fri, 1 Oct 2021 05:42:15 +0000 (14:42 +0900)]
e_hwc_window: Send the event to wl_tbm_queue which received the activate event
if wl_surface has multiple wl_tbm_queue, it is possible that
the deactivate/usable/export event is sent to wl_tbm_queue which does not
recevied the activate event.
Fix the problem scenario
1. Create wl_tbm_queue1 with wl_surface1
2. Send the activate event to wl_tbm_queue1
3. Create wl_tbm_queue2 with wl_surface2
4. Send the deactivate/usable/export event to wl_tbm_queue2
this patch has dependency with wayland-tbm patch
server: Add wayland_tbm_server_client_queue_set_destroy_cb
Change-Id: I7b1a7c1c361407d106ef04ddb48c14b2e60efbe6
Changyeon Lee [Thu, 30 Sep 2021 05:06:22 +0000 (14:06 +0900)]
e_comp_object: Do not update the comp object if it is not redirected
if the comp object is not redirected, e20 does not want to update
the comp object at canvas.
in case of the comp object is displayed by hwc, it is not redirected.
Change-Id: I778fe323f3de27a5362192145278c81348ef1784
Doyoun Kang [Wed, 29 Sep 2021 02:08:17 +0000 (11:08 +0900)]
e_policy_stack: add code to check transient_for order
There was a bug that the transient_for children stack was incorrect.
1. Win_C1 set transient_for to Win_P already
2. Create Win_C2
3. Set Win_C2's transient_for to Win_P
4. Show Win_C2
5. Set Win_C1's transient_for to Win_P again
Above scenario, We exptected the window stack as below.
[Top] Win_C1 -> Win_C2 -> Win_P [Bottom]
But, window stack was Win_C2 -> Win_C1 -> Win_P.
This will fix this issue.
Change-Id: I1048bf5bbb492f52db5423ee610c2afe0e8e7097
Doyoun Kang [Thu, 23 Sep 2021 06:45:26 +0000 (15:45 +0900)]
e_policy_visibility: fix crash issue
There was a bug that we set the deleted grab->timer to NULL in _e_vis_client_grab_clear_cb.
We changed code to set grab->timer to NULL before deleting a grab.
Change-Id: Ifa54e47194a84aa491769053a87fe3f5722d738e
Changyeon Lee [Fri, 17 Sep 2021 06:21:30 +0000 (15:21 +0900)]
e_hwc_window: Add damage to canvas when hwc_window needs present sync
if hwc_window needs present sync, gl compositor must render once
Change-Id: I7e467288dcbbbccfe0441bb024d49395afe3fe8b
Junseok, Kim [Fri, 17 Sep 2021 08:02:04 +0000 (17:02 +0900)]
e_policy_wl: fix typo
Change-Id: Ia069124e2e2efcfe0e750a1f79e07aee88894790
Junseok, Kim [Thu, 16 Sep 2021 03:53:39 +0000 (12:53 +0900)]
e_info: Modified focus_policy_ext option to suit the usage.
Change-Id: I8665134a2af5acf980ab2cc8254c5640e3c2df44
Doyoun Kang [Thu, 16 Sep 2021 23:52:28 +0000 (08:52 +0900)]
e_policy_visibility: fix bug for handling grab in wait_buf_list
There was a bug that grabs in the wait_buf_attach_grab_list were not removed
when the grab was canceling or the vc was removed.
Change-Id: Ib9fc2c0ae3ae9b1c98f06e9a0e9c7dad90e86566
Doyoun Kang [Thu, 16 Sep 2021 07:03:15 +0000 (16:03 +0900)]
e_policy_visibility: refactoring code
- Rename internal value in _e_vis_ec_below_uniconify
- Add some logs
Change-Id: I7b470c6ada7129436578613193e9302b604fa6e4
Changyeon Lee [Thu, 16 Sep 2021 06:02:14 +0000 (15:02 +0900)]
Fix wrong null checking
Change-Id: Id8874c7cdd92fd60f9dc6b220211431b64d20f6d
Changyeon Lee [Tue, 14 Sep 2021 11:51:48 +0000 (20:51 +0900)]
e_comp_wl_tizen_hwc: Fix wrong discard event in case of present sync
In case of the present sync of hwc_window is set, hwc_window is not updated
until the pending update data of hwc_window is enqueued.
so the discard event of hwc_commit_feedback is sent because hwc does not have
the update data of commit.
this patch make that hwc_commit_feedback does not send event until
the pending update data of hwc_window is enqueued.
Change-Id: I93f6a1545f70196cf0f49c2799c1001ae3b12794
Doyoun Kang [Mon, 13 Sep 2021 06:47:59 +0000 (15:47 +0900)]
Add a configuration file for vip process
By this configuration, when the enlightenment is terminated abnormally,
the resourced will reboot the device by force.
Change-Id: I0b6ce8d7bc655cfcdb271824edf24344513882bb
Changyeon Lee [Thu, 9 Sep 2021 01:31:03 +0000 (10:31 +0900)]
e_comp_screen: Fix leak of gbm device fd
Change-Id: Ie7b3c494cd3b7fde002052211de87841c339fbae
Seunghun Lee [Fri, 3 Sep 2021 07:18:43 +0000 (16:18 +0900)]
e_foreign_shell: Fix leak of eina_iterator
Change-Id: I0c490d2defeadd932b819c338eb637b1ca3fc504
Changyeon Lee [Wed, 11 Aug 2021 10:46:40 +0000 (19:46 +0900)]
e_hwc: Support creating ecore_evas of gl compositor with gbm
this patch is for ddk which only support libgbm.
e20 try to creating ecore_evas of gl compositor with gbm device
and gbm_surface.
if hwc_prefer_gbm config is set, e20 prefer creating ecore_evas
with gbm to tbm.
Change-Id: Ia02fbeaff13928138fa3f1675d2eb47c783337d1
Changyeon Lee [Wed, 23 Jun 2021 07:29:11 +0000 (16:29 +0900)]
e_comp_wl: Create E_Comp_Wl_Buffer with gbm_bo
Convert wl_buffer to gbm_bo and gbm_bo to tbm_surface
E_Comp_Wl_Buffer is created with tbm_surface and set by tbm type
Change-Id: I93f06aeba0544f6981cae60228cb4add14904c74
Doyoun Kang [Thu, 2 Sep 2021 06:26:38 +0000 (15:26 +0900)]
e_policy_visibility: remove unnecessary grab while waiting child's uniconify
Change-Id: I54181be74db5c59f954ef33c03dcc91c0fc6dfb1
Doyoun Kang [Thu, 2 Sep 2021 04:46:06 +0000 (13:46 +0900)]
e_policy_visibility: flush all grabs when a new buffer is attached
There was a bug that the window requested both uniconify and unmaximize(defered move),
then the timeout was occured.
We add a grab_list to maintain grabs which are waiting for changing buffer.
And we flush all grabs in the list when a buffer is changed.
This will resolve above problem.
Change-Id: I9f86323e5cd0484fd29e67dc8a684e2cb80c0592
Junkyeong, Kim [Tue, 31 Aug 2021 07:40:18 +0000 (16:40 +0900)]
e_output: Change stream capture vblank method
If tdm backend not support stream capture,
enlightenment use vblank and pixman to support stream capture.
But if tdm support one shot capture, use tdm capture instead pixman for stream capture.
Change-Id: Ifb908c36256a07d598f3281f32bc9401c5cd6327
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Doyoun Kang [Mon, 30 Aug 2021 07:48:59 +0000 (16:48 +0900)]
e_policy_wl: refactoring for handling softkey client
- Add E_Policy_Wl_Tzsh_Client_Data_Softkey structure
- Show softkey service when the softkey client which requests to hide softkey service
is destroyed
Change-Id: I0099ba5e87434bf6cb810b08625a6fe634efc983
Doyoun Kang [Fri, 27 Aug 2021 08:45:59 +0000 (17:45 +0900)]
e_policy_wl: refactoring tzsh_client
E_Policy_Wl_Tzsh_Client structure
- add handle_type to replace each type values
- add client_data for each tzsh_client's private data
Change-Id: Ie255694cdd3bc4b3a6da80d3ff27c95b258a6e07
Junkyeong, Kim [Fri, 27 Aug 2021 03:02:49 +0000 (12:02 +0900)]
e_output: Add missing definition
Change-Id: I66d62acf0b575b363dd3426fe2469f145bec0501
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Doyoun Kang [Thu, 26 Aug 2021 06:01:48 +0000 (15:01 +0900)]
winfo: add transient_policy information in topvwins
Change-Id: Ib7f14599f4501f93152575d7d2f2c51e49b3bc3c
Junkyeong, Kim [Tue, 24 Aug 2021 11:05:42 +0000 (20:05 +0900)]
e_comp_wl_screenshooter: Support set_auto_rotation screenmirror request
Support screenmirror auto rotation by using e_output_stream_capture_autorotate.
Change-Id: Ic3def014b90986b9ec5eb054c14ddde5baca7d8e
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Junkyeong, Kim [Tue, 24 Aug 2021 10:51:19 +0000 (19:51 +0900)]
e_output: Add e_output_stream_capture_autorotate API
To support stream capture autorotation, add new api.
If set auto_rotation, stream capture makes user base screen image capture.
Change-Id: I4a6df8998464d200ecd7982fac23b7df5235be25
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Junkyeong, Kim [Tue, 24 Aug 2021 10:42:46 +0000 (19:42 +0900)]
e_output: Add _e_output_capture_transform_check function
To reduce redundancy, adding transform(rotation) checking function for capture.
Change-Id: I8c693ff20c627508fd6365355d8f2490f8e3fefc
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Doyoun Kang [Wed, 25 Aug 2021 02:43:13 +0000 (11:43 +0900)]
e_comp_object: change transform_bg object's render operation according to alpha value
If a transform_bg_color's alpha value is opaque(over 255), then we apply a render mode to
EVAS_RENDER_COPY. Otherwise, we apply a render mode to EVAS_RENDER_BLEND.
Change-Id: I7fa8bdfba0604fa17e93552a9b28d1c29be249e3
Doyoun Kang [Wed, 25 Aug 2021 02:12:16 +0000 (11:12 +0900)]
e_policy_stack: rearrange transient child stack while setting transient_for window
If a window request to set transient_for(or parent), we rearrange parent's transient list.
So, the window is placed on the top of siblings or under the bottom of siblings.
Change-Id: Ie0fad8a3def35779f90775e713fbf7315c87a9c1
Doyoun Kang [Mon, 23 Aug 2021 04:39:49 +0000 (13:39 +0900)]
e_policy_stack: set transient_policy while handling transient_for/parent_set
There was a bug that the transient child window placed under the parent when it set
transient_for. This bug was occured when the window set the transient_for(or parent) to
BELOW and then set the transient_for(or parent) ABOVE again.
So, we add the code that sets the transient policy whenever the window set the transient_for
(or parent).
Change-Id: Id209d92f4ffbaf9a64b1f59e3114e3c0bd6b9f3a
Doyoun Kang [Fri, 20 Aug 2021 04:42:24 +0000 (13:42 +0900)]
e_info: add process_info option in enlightenment_info
The process_info option prints E_Process information using dlog
Change-Id: I357c68948c3f81365e32b6888f1be7fac9c6558b
Doyoun Kang [Fri, 20 Aug 2021 01:18:47 +0000 (10:18 +0900)]
e_client: send E_EVENT_CLIENT_REMOVE event when an ec is deleted
There was a bug that the E_Process kept the deleted ec pointer (dangling) in the ec_lists.
When the ec which sent E_EVENT_CLIENT_ADD event and set new_client flag to 1 was deleted,
E could not send E_EVENT_CLIENT_REMOVE event because its new_client flag was 1.
By this, e_process didn't get the E_EVENT_CLIENT_REMOVE and didn't remove ec from ec_lists.
This patch resolve this problem.
We change code to send E_EVENT_CLIENT_REMOVE always if E_EVENT_CLIENT_ADD was sent before.
Change-Id: Iac5f683a9fb2aacd897ec07f4b0ab46c5e396d8d
Changyeon Lee [Thu, 3 Dec 2020 11:53:44 +0000 (20:53 +0900)]
e_config: add cursor_configured_output_resolution configuration
if output resolution is 4k but resolution of cursor image is 2k resolution,
cursor image should be scaled to 2 and cursor is scaled by tdm driver when
it is displayed by hwc.
hwc must consider scaling of cursor when position is calculated.
but enlightenment doesn't know whether resolution of cursir image is 2k or 4k.
so cursor_configured_output_resolution is added in e_config.
Change-Id: I825a6b7cbc411725f188e4aaf116d8f3df5799f6
Doyoun Kang [Wed, 18 Aug 2021 01:37:26 +0000 (10:37 +0900)]
e_service_quickpanel: check scrollable state before showing/hiding quickpanel
There was a bug that the quickpanel was shown when the window set a scrollable state
to E_QUICKPANEL_CLIENT_SCROLL_STATE_RETAIN and the previous scrollable state was
E_QUICKPANEL_CLIENT_SCROLL_STATE_UNSET.
In this case, quickpanel could not be shown.
This patch resolves this problem by adding a scrollable checking code.
Change-Id: I6ce08691120f67e2a2258b06ad377c74895907b0
Doyoun Kang [Wed, 18 Aug 2021 00:29:50 +0000 (09:29 +0900)]
e_policy_wl/e_service_quickpanel: refactoring for scrollable state of quickpanel
1. Change code to use E_Quickpanel_Client_Scroll_State enumeration not integer.
- E_QP_Client's scrollable value
- e_qp_client_scrollable_state_set
- e_qp_client_scrollable_state_get
2. Change code to use recommended function not deprecated function.
- e_qp_client_scrollable_set -> e_qp_client_scrollable_state_set
- e_qp_client_scrollable_get -> e_qp_client_scrollable_state_get
Change-Id: I822fe6ce40f7ffc58a9b432fa2d6437172425d56
dyamy-lee [Wed, 11 Aug 2021 11:48:42 +0000 (20:48 +0900)]
e_input_server_input : max_touch_count
apply max_mt_slot by using configured value when winfo init device
Change-Id: Ic3314ddfb7b3f55a21906a08e12de97dfd2b8b61
Doyoun Kang [Tue, 17 Aug 2021 06:29:19 +0000 (15:29 +0900)]
e_policy_wl: refactoring for handling tzsh, tzsh_service, tzsh_client
We found a memory leak for the E_QP_Client in some case.
If a window created two more tzsh_quickpanel clients and destroyed them,
then e COULD NOT CALL the first quickpanel client's e_qp_client_del function.
This was because e handled ec information by tzsh only.
To resolve this,
We add two lists - tzsh_service, tzsh_client - in the E_Policy_Wl_Tzsh.
Also we move some information(E_Client and E_Pixmap) to E_Policy_Wl_Tzsh_Srv and
E_Policy_Wl_Tzsh_Client from E_Policy_Wl_Tzsh.
And Each E_Policy_Wl_Tzsh_Srv and E_Policy_Wl_Tzsh_Client handle its ec itself.
Change-Id: Ie79ab1ccbbf934400d0b478a4162d21d6fba0f88
Junseok, Kim [Tue, 17 Aug 2021 04:40:51 +0000 (13:40 +0900)]
e_info_client, e_utils: change long to unsigned long to avoid sign extension
Change-Id: I85188a167e8a6f0b539a185873b7a82bc1bfa0d1
Joonbum Ko [Mon, 9 Aug 2021 05:52:27 +0000 (14:52 +0900)]
Set ec->explicit_sync_surface to null when it destroyed
- If client try to create only explicit_surface_sync after
destroying its old one while ec is retained,
the creation will be failed because ec->explicit_surface_sync
was not initialized to NULL.
- This problem cannot occur in normal EGL client,
but can occur in Vulkan.
Change-Id: Ifa5e0340c5a6f91ec66fd24c5c5f3a3fce3f1c42
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
Sung-Jin Park [Fri, 9 Jul 2021 12:58:25 +0000 (21:58 +0900)]
e_comp_wl_tbm: clear execution permission from c file
Change-Id: I6fe10a03e47e1ec682c08f38f61f981f667f00ea
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
Rahul Pandey [Wed, 4 Aug 2021 15:31:51 +0000 (21:01 +0530)]
e_comp_wl: add hook E_COMP_WL_HOOK_CLIENT_ALPHA_CHANGE for change in alpha value
Change-Id: Ibd52cd662c9717bd883275e3f10eaac5509c0260
Signed-off-by: Rahul Pandey <rahul.p1@samsung.com>
Doyoun Kang [Thu, 5 Aug 2021 00:17:20 +0000 (09:17 +0900)]
Revert "Revert "e_map: enable direct render set to the new e_map""
This reverts commit
f7a38cbb8511c428f18dd136d1f28d85c98eb2a2.
(Crack screen issue has fixed by evas. So, we apply this patch again.)
Change-Id: I223df78896839ccb1ace05acce58a14a8913e5ac
Duna Oh [Wed, 4 Aug 2021 00:15:22 +0000 (09:15 +0900)]
e_devicemgr:fix the wrong cursor position after pointer warp request by non-fullscreen application
The warp request from an app should be in relative coordinate which is bound to (0,0 ~ width,height).
After clipping warp coords to inside of the window, we add up the the x,y position of window
to handle the warp coords in server side.
Change-Id: Ic78a352e4ede83dae3826a57338213fedeb73324
Doyoun Kang [Fri, 30 Jul 2021 07:44:39 +0000 (16:44 +0900)]
e_policy_wl: refactoring rename to softkey_service from softkey
Change-Id: I5067747880aeebdf04548751bb9daf9d08c4ec6f
Changyeon Lee [Fri, 30 Apr 2021 08:11:18 +0000 (17:11 +0900)]
e_hwc_windows: Support gbm_surface of gl compositor
if gl_compositor use gbm_surface E_Hwc_Window_Queue
of target window is created with gbm_surface and
E_Hwc_Window_Queue_Buffer(gbm_bo) is acquired from
gbm_surface.
Change-Id: Ib259876ce8851846203fbfb5bdae7005af8f4b9b
Changyeon Lee [Fri, 9 Apr 2021 03:37:21 +0000 (12:37 +0900)]
e_comp_wl_tbm: Add internal func e_comp_wl_tbm_import_gbm_bo
this api for converting gbm_bo to tbm_surface
Change-Id: Ib6439fd4c64974aac95845ccac295ac9db486edf
Doyoun Kang [Thu, 29 Jul 2021 22:51:30 +0000 (07:51 +0900)]
e_service_softkey: refactoring internal naming
Rename to softkey_service from softkey
Change-Id: I9ff6d19fe0e5c2bad8a811eba17a8f48454d82b3
Seunghun Lee [Wed, 28 Jul 2021 04:32:50 +0000 (13:32 +0900)]
Revert "e_client: Revert unintended change"
This reverts commit
cd2c7bed010b6dff41e5057e61cd024781b45edb.
An unintended change was made mistakenly from the commit:
commit
790fee54df0cead13ff0c17c7fd21c2ddae6302d (HEAD)
Author: Seunghun Lee <shiin.lee@samsung.com>
Date: Wed Jun 23 10:53:24 2021 +0900
subsurface: Add a function for getting parent of sub-surface
Actually this had been corrected from the commit 760ee67 by chance,
but I made the commit cd2c7be because I misunderstood it.
Change-Id: Id25abf493a280696f977dbf5dfef1b4ed199166b
Seunghun Lee [Wed, 28 Jul 2021 04:09:34 +0000 (13:09 +0900)]
e_policy_wl: Add missing NULL check
The NULL check was accidentally missed from the commit:
commit
365cf23f85795c691edddc836425bcbf34c96f29
Author: Seunghun Lee <shiin.lee@samsung.com>
Date: Tue Jul 20 09:45:18 2021 +0900
Move fake implementations for sub-surface to e_policy_wl
Change-Id: Ibc53c81cfa6ba551f026b352f92b0cb6855183b0
Seunghun Lee [Tue, 27 Jul 2021 03:56:13 +0000 (12:56 +0900)]
e_client: Revert unintended change
The original logic of code changed unintentionally by following patch.
This is to revert it.
commit
760ee674d0d4e40953430edb99bea2b32bdb2a73
Author: Seunghun Lee <shiin.lee@samsung.com>
Date: Fri Jul 2 14:41:11 2021 +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: I0576ea57b770d4a9d2ea0b714d57b1c1f44867d4
JunSeok Kim [Tue, 27 Jul 2021 04:39:39 +0000 (04:39 +0000)]
Revert "e_map: enable direct render set to the new e_map"
This reverts commit
bb66ae5c274baf1a92e4b08b7b6790bd80f54167.
Reason for revert: There was a crack screen issue when the 8K image was capture.
We will apply this patch again after fixing it.
Change-Id: I72713e601f39afcbc462b273a2b439d93f2ce35a
Doyoun Kang [Thu, 22 Jul 2021 07:26:25 +0000 (16:26 +0900)]
e_client: fix transient_for_below bug for lowering child window
There was a bug that the children list was wrong when the parent was raised.
The bug scenario is as below.
1. One of transient_for_below children requests to lower
2. The parent of it requests to raise
Then, the parent is raised with wrong stack of transient_for_below children.
This patch will fix it.
Change-Id: Ifa92967e741bd90f4d3e5fb375bb64a63357185d
Changyeon Lee [Thu, 8 Jul 2021 08:29:31 +0000 (17:29 +0900)]
e_hwc: Add E_Hwc_Presentation_Callback
this callback for module want to know that timing of displaying(presentation)
if callback is added after frame of client is changed(ex: hide, show),
callback is called when frame is presented on display.
Once callback of E_Hwc_Presentation_Callback is called,
E_Hwc_Presentation_Callback should be destroyed.
Change-Id: Icbe0d7c92f6f3e3fdbce6c40a33a9c823d0f6d68
Seunghun Lee [Thu, 22 Jul 2021 05:17:01 +0000 (14:17 +0900)]
e_foreign_shell: Remove trailing white spaces
Change-Id: Idb5304b190572421e61bbce3ee839f346e3a4e86
Seunghun Lee [Thu, 22 Jul 2021 02:31:56 +0000 (11:31 +0900)]
e_foreign_shell: Remove redundant NULL check
_e_exported_shell_find_by_surface() is called from
e_foreign_shell_export() where the surface parameter is already
validated prior to the call. This makes the 'surface' NULL check
redundant.
Change-Id: I619a3e8e1bdeb9eb1ebeb89e79a8eabe2aa9316e
Seunghun Lee [Thu, 22 Jul 2021 02:10:04 +0000 (11:10 +0900)]
e_foreign_shell: Add surface role error code
Needed for properly reporting surface role violations from
wtz_importer.import_shell.
Change-Id: I55d56798c608ff274e641bfd7313903457076172
Seunghun Lee [Thu, 22 Jul 2021 02:02:49 +0000 (11:02 +0900)]
e_foreign_shell: fix missing 'static' keyword
Declare _exported_shell_hash as static variable as it's local to
e_foreign_shell.c
Change-Id: I5eeb3d8236eb4abda3fb072cf6be6fbf2a127c1d
Seunghun Lee [Wed, 21 Jul 2021 09:31:30 +0000 (18:31 +0900)]
foreign_shell: Associate E_Client instead of wl_surface
Knowing when the comp_data is deleted, it's better to associate the
foreign shell with E_Client instead of wl_surface, because E_Client is a
user data of the resource of wl_surface.
The foreign shell becomes inert when the comp_data gets deleted, then
the comp_data must be valid during the lifetime of the foreign shell.
When it comes to ec->frame, we can be sure that it's alive, because it's
supposed to be freed in _e_client_free().
Change-Id: I653df916cf36dfe6f8cc082dee37106e11703fba
Seunghun Lee [Wed, 21 Jul 2021 08:12:40 +0000 (17:12 +0900)]
e_comp_wl: Add missing definitions of hook point
This probably has been writing memory beyond the actual dimensions of
_e_comp_wl_hooks, which is prone to memory corruption.
Change-Id: I7ac472731d0db22be2476fc164e208041268fd9e
Seunghun Lee [Wed, 21 Jul 2021 05:50:33 +0000 (14:50 +0900)]
e_client: Do not free 'comp_data' here
The 'comp_data' gets deleted in e_comp_wl implementation creating the
'comp_data'. Thus, it's redundant to free the 'comp_data' in e_client
and it even gives confusion that the 'comp_data' is still alive at that
point when e_client tries to free the 'comp_data'.
Change-Id: I658c1fce58bca7e34ad612297935c862280c1d8a
Seunghun Lee [Fri, 16 Jul 2021 07:20:19 +0000 (16:20 +0900)]
subsurface: Fix formatting
Change-Id: I4f3826e28ee5cfd599f461a60f984fdefc049d54
Seunghun Lee [Fri, 16 Jul 2021 06:42:16 +0000 (15:42 +0900)]
subsurface: Add log information
It additionally prints the pointer of E_Client for sub-surface
when the comp_data of parent is deleted.
Change-Id: I446c3afc657bc82f3aa15019383ea43365bcba27
Seunghun Lee [Tue, 20 Jul 2021 00:45:18 +0000 (09:45 +0900)]
Move fake implementations for sub-surface to e_policy_wl
It's reasonable to think that the making up the fake implementation for
sub-surface and sending information of invalid parent through
tizen_subsurface_watcher are the jobs of tizen_policy, not sub-surface
implementation.
The implementation of sub-surface should only handle the case with valid
parent surface resource. Even if the invalid parent were given for
sub-surface through this, it's better to make it failed noisily.
Change-Id: If045dcc35502314f16c0da6fbc7bd0c85e8c545f
Seunghun Lee [Tue, 20 Jul 2021 05:28:28 +0000 (14:28 +0900)]
subsurface: Remove deprecated function
The function e_comp_wl_subsurface_create got deprecated since
e_comp_wl_subsurface_add have been introduced.
Change-Id: I18867627bfce0e73002222abe8eae09b391d4580
Seunghun Lee [Mon, 12 Jul 2021 09:14:04 +0000 (18:14 +0900)]
subsurface: Add function e_comp_wl_subsurface_add()
The function e_comp_wl_subsurface_create() is deprecated, and
e_comp_wl_subsurface_add() is added instead.
The purpose of this patch is as followed.
1. Some codes for checking for validating subsurface are repeated in
e_comp_wl_subsurface and e_policy_wl.
This is to remove the duplication through gathering duplicated check
codes into the function.
2. Using suffix 'add' is better than 'create'.
The 'create' implies it returns an object which later has to be
destroyed, the 'add', on the other hand, also can be used for
returning boolean value.
Change-Id: Ieeed62e87a502d0955378ecb8e37779ae732f9d5
Doyoun Kang [Tue, 20 Jul 2021 07:46:29 +0000 (16:46 +0900)]
e_policy_wl: implement callback function for tizen_policy's new requests
we implement callback fuctions for below requests
- tizen_policy_set_transient_for_below
- tizen_policy_set_parent_with_below
Change-Id: I52d4b4ac17926699f51bebe7ea221012f311472e