Artur Świgoń [Thu, 20 Oct 2022 09:19:59 +0000 (11:19 +0200)]
Add e_client_under_position_input_get()
Similarly to e_client_under_position_get(), it performs a hit-test, but input
regions are also considered. If input regions are present, then the specified
position needs to be inside such a region.
Change-Id: Ie75c346ffc6e535fdb678e7b5748435f9a003bbb
duna.oh [Wed, 15 Jun 2022 08:32:24 +0000 (17:32 +0900)]
e_devicemgr: fix the memory leak of tizen_input_device objects
There is a bug that a client doesn't send 'tizen_input_device_destroy' requests,
then tizen_input_device resources would stay undeleted.
This commit cleans up tizen_input_device resources when a client destroys
The tizen_input_device resource should be removed from the list 'dev->resources'
to prevent accessing invalid resource object.
Change-Id: I54cd0212032b60b8e6278207ef495ab806dc6a86
Doyoun Kang [Wed, 15 Jun 2022 06:01:38 +0000 (15:01 +0900)]
e_client: consider edge value while calculating visibility
When the window size is 1x1, then the eina_tiler skips it as rounding.
So, we add an additional edge value to window's geometry to calculate visibility correctly.
Change-Id: I3ee6fa69fc5d84e9cf1e9ed64108597489da0f6a
Doyoun Kang [Thu, 16 Jun 2022 07:23:17 +0000 (16:23 +0900)]
Revert "e_client: remove edge value while calculating visibility"
This reverts commit
4f224b47b85d26a229b5d530ede4a7d11e17633f.
Change-Id: I95c01cc16865ebb9f22c55dc32fb717ed69701b7
Doyoun Kang [Thu, 2 Jun 2022 23:59:04 +0000 (08:59 +0900)]
e_policy_visibility: add null checking code in timeout functions
Change-Id: If2dac2e6b6d63f4060bc225af888c682c2c1f5a4
Junseok Kim [Thu, 26 May 2022 09:36:03 +0000 (18:36 +0900)]
e_process: use eina_hash_int32_new instead of eina_hash_pointer_new when make hash of pinfo
there was a stack buffer overflow issue when access to pinfo hash on aarch64 system.
it caused by eina_hash_pointer_new (int64) to create hash using pid key (int32).
thus, stack overflow issue when memcpy on eina_hash_add.
for fix this issue, changed to eina_hash_int32_new instead of eina_hash_pointer_new.
Change-Id: I92fc6ef9778416f219af33b4c0ff4f571b3c3edf
(cherry picked from commit
c20f36275df9536520509fe52d9e6faeeaffa67d)
Doyoun Kang [Mon, 30 May 2022 02:00:33 +0000 (11:00 +0900)]
e_policy_stack: unset post_raise/lower flag after changing transient stack
There was a bug that the transient child window was raised when it requested map.
This was due to the post_raise flag.
To resolve this, e resets the post_raise/post_lower flag after applying transient_for stack.
Change-Id: I8a263ad658a56dc55e2dc8dde850a51fb3d4ec2b
Doyoun Kang [Wed, 4 May 2022 01:48:10 +0000 (10:48 +0900)]
e_client: remove edge value while calculating visibility
Change-Id: Id0ad4384a6d85c73c903a7e8b7069eea093ef286
Doyoun Kang [Fri, 29 Apr 2022 01:13:19 +0000 (10:13 +0900)]
e_comp_object: fix resource leak
There was a bug that the evas_object_event_callback for mouse events didn't removed.
This patch fixes it.
Change-Id: I930f299370834d4a83b48fa2f19748fb9ffbb95a
Changyeon Lee [Mon, 4 Apr 2022 04:26:08 +0000 (13:26 +0900)]
e_hwc_window: remove too much error log
if client doesn't have the wl_tbm_queue and tdm backend set
the TDM_HWC_WIN_CONSTRAINT_BUFFER_QUEUE, error log is printed
when every validate of tdm.
client can attach buffer and commit without wl_tbm_queue.
Change-Id: Ic60074ebd9f8b7ab6fab7ed61965acda82a2821c
Changyeon Lee [Mon, 4 Apr 2022 04:21:10 +0000 (13:21 +0900)]
e_hwc_windows: add wayland_tbm_client_queue to debug info of hwc_window
Change-Id: I5df1244baa54365e246f582655d5e647b2f4c4fd
Doyoun Kang [Tue, 5 Apr 2022 06:26:33 +0000 (15:26 +0900)]
e_policy_visibility: set not_raise flag to below window while handling below uniconify
When a below window is uniconified by below_uniconify, it shouldn't be raised.
We add code which set the not_raise flag to 1 not to raise the window.
Change-Id: Ia6b8068afbfcf55d454f6a2db24619cd724956e2
duna.oh [Thu, 24 Mar 2022 01:20:59 +0000 (10:20 +0900)]
devicemgr: fix to use strdup() instead of eina_stringshare_add/del()
Since the 'identifier' variable is a 'char *' type, strdup() and free()
should be used to avoid memory corruption.
Change-Id: I36931235808d75f4c934ac6a6681d3e5094c6163
Junseok Kim [Mon, 14 Mar 2022 11:29:08 +0000 (20:29 +0900)]
e_policy_visibility: Added e_policy_visibility_client_raising_job_cancel.
There was a bug that client shown after client request lower.
in detail, the client was a transient_for child and parent request activate.
During the deiconify render of parent and child, child requested unset transient_for and lower.
In this case, the child client have to be lower, but it shown after parent deiconify render done.
To fix this problem, added raising job cancel function and called in lower callback.
Change-Id: Ib66664d518a064567e43eb470929b0caa0620986
Signed-off-by: Junseok Kim <juns.kim@samsung.com>
(cherry picked from commit
ce422032d5f1dc99739f1b5c305c0f302428cb45)
Junkyeong, Kim [Thu, 17 Mar 2022 05:41:35 +0000 (14:41 +0900)]
Apply changed boot mode get API
Change-Id: I20c11c36f48eb03519c9369cac981cab87ebbb05
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Doyoun Kang [Thu, 3 Mar 2022 07:27:30 +0000 (16:27 +0900)]
e_policy_wl: update states(iconic, visibility) of transient below child while changing parent's alpha value
There was a bug that the e didn't send an iconic state change event to the transient below child
when its parent's alpha value is changed.
This patch resolve this problem.
Change-Id: I5f08a85a230ecf48f1bb2a9ea500b87cf7746510
duna.oh [Wed, 2 Mar 2022 01:45:49 +0000 (10:45 +0900)]
e_keyrouter: fix resource leak issue in e_keyrouter_key_cancel()
Change-Id: Ibb3095b2ee7089f5d2c6e6ca4e4936ce894f2836
Doyoun Kang [Wed, 2 Mar 2022 04:03:46 +0000 (13:03 +0900)]
e_magnifier: check null reference
Change-Id: Ia2226093c75caff1eb5f922d7c8feb83e7b6a95f
duna.oh [Sun, 20 Feb 2022 23:00:17 +0000 (08:00 +0900)]
devimgr: fix string operation of device's name and identifier
Change-Id: I8b0aa3e7ae66832691e4a98bdf4bf86784d21193
Doyoun Kang [Thu, 17 Feb 2022 03:45:04 +0000 (12:45 +0900)]
e_comp_wl: delete evas_object's callbacks when ec is deleted
Change-Id: I5ba05bbf5d060d4bfd492a849a6296d74d4370b0
Doyoun Kang [Mon, 14 Feb 2022 04:39:23 +0000 (13:39 +0900)]
e_comp: check whether E_Zone is null or not in e_comp_deferred_job
Change-Id: I748c52dd3ac3f26ac423d9d358e1d1114f458803
Duna Oh [Mon, 14 Feb 2022 04:56:25 +0000 (13:56 +0900)]
e_info_client: fix the string overflow: check strlen before strncpy
Change-Id: I6ed07fd97621bd4e7e03fc5d8d02ecf33f23a365
Changyeon Lee [Mon, 7 Feb 2022 06:16:00 +0000 (15:16 +0900)]
e_hwc_window_queue: unset callback of wait usable before the buffers retrieve is called
callback of wait usable was not unset in _e_hwc_window_queue_prepare_unset
because cqueue of hwc_window was set to null in _e_hwc_window_queue_buffers_retrieve.
Change-Id: I5fb68ea20cec54a454add03c48701f1fd9530423
Doyoun Kang [Mon, 7 Feb 2022 00:26:27 +0000 (09:26 +0900)]
e_comp_wl_data: fix build warning
Change-Id: Ibee7d01c8e731ed23bad5ce649a47e4d8c7037b0
Doyoun Kang [Thu, 27 Jan 2022 08:13:19 +0000 (17:13 +0900)]
e_process: check ec's validation in _e_process_windows_visible_get
We modify code to skip the deleted ec while checking the visible state of windows.
By this patch, if all windows of specified process are destroyed, then e makes the state
of process to STATE_BACKGROUND and sends E_PROCESS_ACT_NO_VISIBLE_WINDOWS action signal.
Change-Id: I12bc0c7d1c9fa1e07909429e01072bd857adf12f
Duna Oh [Thu, 27 Jan 2022 08:55:03 +0000 (17:55 +0900)]
e_comp_wl: fix invalid dangling pointer. (e_comp_wl->ptr.ec, e_comp_wl->touch.faked_ec)
set e_comp_wl->ptr.ec, e_comp_wl->touch.faked_ec to NULL when ec is deleted
Change-Id: Ie45c5b3dd74836f50e9bd7e4049312972f48de40
Changyeon Lee [Thu, 27 Jan 2022 05:49:24 +0000 (14:49 +0900)]
e_comp_wl_video: Rename macro IS_RGB to E_VBUF_IS_RGB
IS RGB can be easily redefined.
E_VBUF is added and it is moved to source file.
Change-Id: Ib22c788cb1c966ca234aea6bcfe207ec07f7818c
Doyoun Kang [Wed, 26 Jan 2022 07:05:01 +0000 (16:05 +0900)]
e_policy_visibility: reset vc->state to ICONIC while canceling visibility job
There was a bug that the window's iconic_state_change event didn't send to the client
in _e_vis_client_add_uniconify_render_pending. This was because the vc->state was
remained to E_VIS_ICONIFY_STATE_RUNNING_UNICONIFY_RENDER_DONE.
This can be occurred when the uniconify_by_visibility job is canceled.
To resolve this problem, we add code to set the vc->state to E_VIS_ICONIFY_STATE_ICONIC
in uniconify_by_visibility job cancel function.
Change-Id: Ie2873be552b15cb3216f1d1dcc3f587807769cb4
Junkyeong, Kim [Thu, 27 Jan 2022 00:22:29 +0000 (09:22 +0900)]
e_pointer: add e_pointer hook
Add two default e_pointer hook point below.
E_POINTER_HOOK_TOUCH_MOVE
E_POINTER_HOOK_MOUSE_MOVE
Change-Id: I768435732f01b15c20125bd1a99a59ecc8392061
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Duna Oh [Tue, 25 Jan 2022 08:00:46 +0000 (17:00 +0900)]
e_comp_wl: fix rounding error using lround() in e_comp_wl_map_inv_coord_get()
E20 converts the client-area coordinates to the screen coordinates
using e_comp_wl_map_inv_coords_get(). When trying to get new coordinates,
there was issues with rounding error. Fix it using lround()
Change-Id: I6be25998287ad0dc869eb60af8474ba2b2a7a77e
Junseok, Kim [Wed, 5 Jan 2022 04:12:38 +0000 (13:12 +0900)]
e_comp_wl: send wl_data_device_enter when cursor enter to offer
There was a bug that wl_data_device.enter didn't sended to offer client except source client.
It is continued untill the user release their pointer. and It makes the offer client didn't notice cursor entered until drag-and-drop performed.
For fix this problem, check the window that below cursor and send wl_data_device.enter/leave when during the drag performed.
Change-Id: Id5e8902e07371570cc97f0583b3e9b1403be1fa1
Junseok, Kim [Tue, 18 Jan 2022 12:17:51 +0000 (21:17 +0900)]
e_comp_wl_data: added mediator function between data source and offer clients.
In Some system, FD passing is blocked by their security policy.
It could be cause block the IPC between data source and offer client, and it finally the DnD operation gones to fail.
To avoid this problem, added mediator to makes IPC structure being to client -> server -> client instead of direct IPC of client to client.
Change-Id: I12544ea4c8a26422461533d86399e620cec0c46f
Changyeon Lee [Mon, 24 Jan 2022 08:56:01 +0000 (17:56 +0900)]
e_comp_wl_video_buffer: support XBGR8888 ABGR8888 format
Change-Id: I87de1396f9c20d7484ef93c284591817dc291971
Doyoun Kang [Thu, 20 Jan 2022 06:24:27 +0000 (15:24 +0900)]
e_policy_visibility: do not remove vc->buf_attach event handler while executing pended job
There was an issue that the E_Vis_Grab resource which was wating for buffer attach event
couldn't freed if the E_Vis_Grab's timer was expired.
This resource would be freed when the E_Client was destroyed.
However, if the E_Client is not destroyed, then the memory can be increased continuousely.
This patch makes the E_Vis_Grab resource to be freed when a timeout is occured.
Change-Id: Ia6a1bee0ddeddaef42a52bd384ba50d027033827
Changyeon Lee [Tue, 18 Jan 2022 08:09:56 +0000 (17:09 +0900)]
e_hwc_window_queue: skip setting backup buffer even if client has buffer
client can have buffer even if client is iconify and buffer flush is enabled
because buffer of client is cleared when buffer flush timer is expired
however client wait new buffer is attached when client change to uniconify
backup buffer is not needed in this case
Change-Id: I15beb8824f71ffa6f4bf39b319abe7795ec3fa40
Changyeon Lee [Tue, 18 Jan 2022 08:05:58 +0000 (17:05 +0900)]
e_hwc_window_queue: add log when backup buffer is created
Change-Id: If4317899ea7fcd990d683b4849ba70bf23181cc4
Changyeon Lee [Mon, 17 Jan 2022 04:52:30 +0000 (13:52 +0900)]
e_comp_wl_subsurface: update map of below_obj when client is moved
map of below_obj should be updated with x,y of client when it is moved
Change-Id: Idfcb84c39bfb1d6590de7f8f27674ab419977b87
Doyoun Kang [Mon, 17 Jan 2022 04:48:50 +0000 (13:48 +0900)]
e_comp_wl: fix resource leak related with subsurface's below object
There was resource leaks related with below object of a subsurface.
- ec->comp_data->sub.below_obj_map_transform_hook
- ec->comp_data->sub.below_obj_map
When the ec was destroyed, above resources was not freed.
This patch resolve this problem.
Change-Id: I582c91749d7d5daf2df34d582546cb939348696d
Changyeon Lee [Fri, 14 Jan 2022 02:16:27 +0000 (11:16 +0900)]
e_comp_wl_tbm: change e_comp_wl_tbm_capturable_buffer_get to E_API
effect module wants to get capturable buffer for rotation effect
Change-Id: Ie980c94d7b111f6984274372dded69f42811e8b3
Changyeon Lee [Wed, 12 Jan 2022 14:28:32 +0000 (23:28 +0900)]
e_comp_wl: do not resize the below_obj in _e_comp_wl_evas_cb_resize
size of the below_obj is 1x1 and evas map is used for resizing the below_obj
after below commit is applied.
e_comp_wl_subsurface: Do not resize the below_obj for optimizing gpu memory
e1346dd48f49e20a86f9e7515285a09d59c7f6c5
Change-Id: I8634c0e54563401f0a36a5331bf5d467ffa3a0fa
Changyeon Lee [Wed, 12 Jan 2022 12:32:27 +0000 (21:32 +0900)]
e_comp_object: disable map of effect obj when video is displayed by hwc
if video window is displayed by hwc, map of effect obj is not needed
because it is not composited by evas.
Change-Id: Ie58c9a7194dd0a7d1014078259e40cff60fd337e
Junseok, Kim [Thu, 13 Jan 2022 04:36:41 +0000 (13:36 +0900)]
e_desk: doing _e_desk_client_zoom recursively to zoom their subsurfaces
There was a bug that video surface have irregularly zoomed during zoom effect.
It caused by video surface applied their transform after desk zoom.
For fix this problem, doing _e_desk_client_zoom recursively to adjust desk zoom after transform.
NOTE:: This patch can be repeated call of evas_map. The zoom have to be refactored for effeciency
Change-Id: I341f317eb89e9f8e38889a67180b90c73f6d99fb
Changyeon Lee [Tue, 11 Jan 2022 06:50:52 +0000 (15:50 +0900)]
e_hwc_windows: add missing initialization hwc of target window
Change-Id: I07fccc20045fefa608dec0f3cecb2a2812c7122f
Changyeon Lee [Tue, 11 Jan 2022 06:49:40 +0000 (15:49 +0900)]
e_hwc_windows: add null check of target window
Change-Id: I99f536003d7297f11fe6577adbc259b60c77d5dc
Changyeon Lee [Wed, 29 Dec 2021 11:04:18 +0000 (20:04 +0900)]
e_hwc_window_queue: fix wrong backup buffer when client is not redirected
if client is not redirected, hwc_window can have queue buffer even if
device state available is false.
Change-Id: I768d0bd54bb20740ef26f136fe5ed1fec700b7c5
Changyeon Lee [Tue, 28 Dec 2021 00:26:27 +0000 (09:26 +0900)]
e_comp_wl: remove send touch cancel event when viewport is changed
we sent touch cancel event because evas_object for input event is changed
(frame->map_imput_ojb) when map is applied for screen rotation.(patch 1)
but we changed that default input obj is added and used for input event.
(patch 2)
so touch cancel event does not needed because evas_object for input event
is not changed.
patch 1:
e_comp_wl: send touch cancel event when touch is pressed before map apply
b96044744924b1fb9d03a7f9d2ae750d1286a078
patch 2:
e_comp_object: defaultly use evas_object for input event instead image object
9e03bb9f23ae7e8db5538fcd213ed74772277239
Change-Id: I7258bcc9038037ab6a233a77f698fa54d35e9906
Changyeon Lee [Tue, 28 Dec 2021 02:49:42 +0000 (11:49 +0900)]
e_comp_wl_hwc: send discard event if hwc_window does not display by hwc
if hwc_window does not display by hwc, feedback does not need to
wait commit.
Change-Id: Ic424c93424d273303d4b9690c6150576ee522a1a
Doyoun Kang [Tue, 28 Dec 2021 02:50:12 +0000 (11:50 +0900)]
e_policy_visibility: modify code to clone the wait_buf_attach_grab_list
In e_policy_visibility_client_uniconify_by_visibility_job_cancel, we freed wait_buf_attach_grab_list,
and then we tried to call _e_vis_grab_release. So, no grab was freed.
To fix this, we add code to clone the wait_buf_attach_grab_list first.
Then, we free the wait_buf_attach_grab_list, and call the _e_vis_grab_release using cloned list.
Change-Id: I70636d159b0b6558b967b08ce4212879403760bb
Changyeon Lee [Mon, 27 Dec 2021 08:56:46 +0000 (17:56 +0900)]
e_hwc_windows: set window transition when transition is client
set window transition for increasing transition failures
Change-Id: I1bc4dc42b5312ac1ebc2b01cc39d7174d73914ff
Changyeon Lee [Mon, 27 Dec 2021 08:55:26 +0000 (17:55 +0900)]
e_hwc_windows: add info log about hwc transition
Change-Id: I609c7b6d9bb9dda58d4e8283f59015db869575a1
Doyoun Kang [Fri, 24 Dec 2021 02:21:35 +0000 (11:21 +0900)]
e_comp_wl: remove checking e_object_is_del in wl_surface_frame destroy callback
In _e_comp_wl_frame_cb_destroy, there existed code to return when the ec was deleted.
Then the destroyed frame was not removed from the each frame lists of ec->comp_data,
it occured memory corruption while destroying the already destroyed frame again.
Change-Id: I1e1b64a4daaf10c2b0f6da56a3090c90193cc4d9
Doyoun Kang [Wed, 22 Dec 2021 09:32:45 +0000 (18:32 +0900)]
e_policy_visibility: modify code for handling uniconify below window which is not use deiconify_update
When a window is lowered or hidden, its below window must be shown by enlightenment.
But there was a bug that the below window which is not set deiconify_update and buffer_flush property
didn't show because its iconic state was not changed.
This patch resolve this problem.
Change-Id: I99e6adc6fc39f754e8a10b57466cceaca2e66a75
Changyeon Lee [Wed, 22 Dec 2021 04:13:49 +0000 (13:13 +0900)]
e_xdg_shell_v6: fix null pointer dereference
Change-Id: I1ee98c3ec82629bba4c4d82ebdda34fe32a530f9
Changyeon Lee [Wed, 22 Dec 2021 03:45:47 +0000 (12:45 +0900)]
e_hwc_window: fix leak of e_map
Change-Id: I58d9d7428c5b22105250b17add95bd3d681a629c
Changyeon Lee [Wed, 22 Dec 2021 02:48:32 +0000 (11:48 +0900)]
e_hwc_window: fix type cast when ratio is calculated
Change-Id: Ieba3625a10b5c8393041cb8e2f6d05412db0d531
Changyeon Lee [Wed, 15 Dec 2021 08:55:51 +0000 (17:55 +0900)]
e_hwc_window: set device state available to true in case transform of client is rectangle
hw plane can support rectangle transform.
tdm backend should decide whether rectangle transform window can be
display by hw plane.
Change-Id: I05be6daba65f811977f617441d656e0a6c0b5b36
Doyoun Kang [Wed, 15 Dec 2021 07:48:14 +0000 (16:48 +0900)]
e_comp_object: add ec information for CRI log
Change-Id: I4bd11d15291fa7b386967c555d54020fa91fbadc
Signed-off-by: Doyoun Kang <doyoun.kang@samsung.com>
Changyeon Lee [Tue, 14 Dec 2021 03:21:17 +0000 (12:21 +0900)]
e_hwc_windows: fix leak of visible_windows list when e_hwc is deleted
Change-Id: I43f6113c3940bc9b6703d7f5dbe3f855f73dab3a
Changyeon Lee [Fri, 10 Dec 2021 03:26:42 +0000 (12:26 +0900)]
e_hwc_window: fix position of hw cursor when output is not 16:9
if only width or height of output resolution is larger than width or
height of cursor output resolution,
cursor image does not need to adjust hot position because cursor image
does not scaled.
Change-Id: If7e6501a8e5da7e5da34353bcb4526f1fee3924c
Doyoun Kang [Mon, 13 Dec 2021 02:06:40 +0000 (11:06 +0900)]
e_xdg_shell: check role before adding list while handling configure
If the surface's role is not TOPLEVEL or POPUP, then e doesnot add configure resource
in the internal list.
Change-Id: Icd092b61f6e37d92e8803c0e447a92ff3b160c2b
Signed-off-by: Doyoun Kang <doyoun.kang@samsung.com>
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
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 [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
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