platform/upstream/enlightenment.git
21 months agoremove handling enlightenment-tests in post script 04/288304/1
Doyoun Kang [Wed, 15 Feb 2023 02:14:30 +0000 (11:14 +0900)]
remove handling enlightenment-tests in post script

Change-Id: I019cd74e344d355d8e878cc8aaa94814b91f2006

21 months agoremove enlightenment-tests in enlightenment package 99/288299/1
Doyoun Kang [Wed, 15 Feb 2023 01:21:29 +0000 (10:21 +0900)]
remove enlightenment-tests in enlightenment package

Change-Id: If6a8c66c1f88d366011d349f9071362dc3d59d54

21 months agoe_devicemgr: handle init_generator_with_sync request 68/288268/1 accepted/tizen/unified/20230215.155617
duna.oh [Fri, 9 Dec 2022 05:42:46 +0000 (14:42 +0900)]
e_devicemgr: handle init_generator_with_sync request

init_generator_with_sync req. is available since tizen_input_devie_manager v.5
e_devicemgr handles this request by sending error_none event when device
is added in E20 and ready to generate input events.
If device is not ready in timer's duration (1 sec), e_devicemgr sends errors.

Change-Id: Ia8412114af58c1f71839c8a111d00fa639f2be9c

21 months agoe_process: check internal window while handling activate/deactivate process 96/288196/1
Doyoun Kang [Mon, 13 Feb 2023 11:15:46 +0000 (20:15 +0900)]
e_process: check internal window while handling activate/deactivate process

There was a bug that the status of process didn't change to DEACTIVATE when the internal ec got
focused.

For resolve this problem, we check the focus ec is internal ec or not. If focus ec is internal,
then e changes the previous activate process' state to DEACTIVATE.

Change-Id: I62961438c61cfc0685c595e93c9406c41eed963b

21 months agoe_util_transform: fix flickering when client attach null buffer 94/288194/1 accepted/tizen/unified/20230215.100702
Changyeon Lee [Mon, 13 Feb 2023 05:37:36 +0000 (14:37 +0900)]
e_util_transform: fix flickering when client attach null buffer

client attach null buffer when it want to unmap
size of ec is updated by size of buffer and core transform use
size of ec.
so ec is transformed by 0x0 size when window  is unmapped and
core transform is enabled.
it cause flickering frame when client attach valid buffer after
it is unmapped.

ex) window is 1920x1080 and core transform size is 3840x2160
1. client attach null buffer and it is umapped
2. transform is updated by 0x0 size because size of ec is 0x0
3. but ec is visible because hide effect
3. client is rendered with transform 0x0 size
4. client attach 1920x1080 size buffer and transform is updated
   by 3840x2160
5. client is rendered with transform 3840x2160 size

Change-Id: Icd74973ae3bd18fda47fcadc47d9fad37bc667a5

21 months agoe_comp_wl.h: remove unused function 83/288183/1
Doyoun Kang [Mon, 13 Feb 2023 07:02:04 +0000 (16:02 +0900)]
e_comp_wl.h: remove unused function

Change-Id: I020264804229c39426ed21daab7c92ec8a3f7896

21 months agoe_comp_wl: refactor code to handle sync_geometry_set 72/288172/1 accepted/tizen/unified/20230214.171550
Doyoun Kang [Mon, 13 Feb 2023 02:03:56 +0000 (11:03 +0900)]
e_comp_wl: refactor code to handle sync_geometry_set

We refactor code to handle the tizen_move_resize_set_geometry request.
We handled it using the serial data of buffer, but there was a case not to set the serial data.
So, we changed code that e compares the buffer size and requested geometry size instead of the
serial data.

Change-Id: I0994f382797de3108e9c6c3645b0449f750b4832

21 months agoe_comp_object: fix the size of effect object 68/287868/1 accepted/tizen/unified/20230208.112457
Changyeon Lee [Mon, 6 Feb 2023 11:36:05 +0000 (20:36 +0900)]
e_comp_object: fix the size of effect object

the size of effect object should be set with the size of comp object
when map of effect object is disabled, not the size of buffer.
because the size of buffer can be different with the size of comp object
when client attach buffer which is not matched comp object.

Change-Id: I609f29db78d666f5efe18a39d1f295fb23a6af02

21 months agoe_desk: check code whether ec is deleted in e_desk_geometry_set 91/287791/1
Doyoun Kang [Mon, 6 Feb 2023 07:23:02 +0000 (16:23 +0900)]
e_desk: check code whether ec is deleted in e_desk_geometry_set

Change-Id: I262d85056fe9a44de5f84626e055daafb906df33

21 months agoe_policy_visibility: check bg_state before calling uniconify_render_pending 16/287616/1 accepted/tizen/unified/20230206.093816 accepted/tizen/unified/20230206.093932
Doyoun Kang [Wed, 1 Feb 2023 09:51:46 +0000 (18:51 +0900)]
e_policy_visibility: check bg_state before calling uniconify_render_pending

Change-Id: I83a38396dcae98aa019cd264c91ad1b8ccec00a2

21 months agoe_comp_wl_tizen_hwc: add wait_commit to log of feedback timeout 25/287425/1
Changyeon Lee [Thu, 19 Jan 2023 10:00:42 +0000 (19:00 +0900)]
e_comp_wl_tizen_hwc: add wait_commit to log of feedback timeout

Change-Id: I1fcada3c3cd323fde9610324189ffcaacc75c4b7

21 months agoe_comp_wl: modify code sending configure event in ec->frame resize callback 52/287252/1 accepted/tizen/unified/20230126.170109
Doyoun Kang [Wed, 25 Jan 2023 07:46:54 +0000 (16:46 +0900)]
e_comp_wl: modify code sending configure event in ec->frame resize callback

We changed code not to send configure event if the buffer size is same to the ec's size in ec->frame's
resize callback.

Change-Id: Iea5bc6b59ec1acf8a24a03fdf042d8bd0e0327c2

22 months agoe_hwc_windows: fix missing set deactivate of hwc_window 91/286891/1
Changyeon Lee [Mon, 16 Jan 2023 05:21:06 +0000 (14:21 +0900)]
e_hwc_windows: fix missing set deactivate of hwc_window

hwc_window should be deactivate in case of hwc window
does not have queue and it is not DEVICE state

Change-Id: I43c1332ff0cf6ab04d7818695f5fdb43e1f42e79

22 months agoe_policy_wl: add a new aux hint for resizing window by ppu 75/286575/2
Doyoun Kang [Tue, 10 Jan 2023 04:50:35 +0000 (13:50 +0900)]
e_policy_wl: add a new aux hint for resizing window by ppu

We add a new aux hint value for ppu.
- wm.policy.win.resize.ppu

Change-Id: I563f4621978bcb37d8ce8410b6e0e615350e6c21

22 months agoe_client: support ppu for resizing window 69/286569/1 accepted/tizen/unified/20230117.140528
Doyoun Kang [Tue, 10 Jan 2023 01:48:23 +0000 (10:48 +0900)]
e_client: support ppu for resizing window

We add a new feature that the window is resized based on the ppu.
If a user sets the ppu value to window and requests to resize window by display server,
e adjusts the window's size according to the ppu value.

Change-Id: Idb7c3d77b9760ca60c4a3d57028af7e53ddb15bd

22 months agoe_xdg_shell_v6: Set wait_next_commit flag to True when min/max_size_set 01/286401/1 accepted/tizen/unified/20230110.164126
Junseok Kim [Thu, 5 Jan 2023 03:53:16 +0000 (12:53 +0900)]
e_xdg_shell_v6: Set wait_next_commit flag to True when min/max_size_set

There was a bug that min/max size set didn't work even the client send wl_surface_commit after min/max_size_set
The commit callback didn't work because of unset of the wait_next_commit flag.
And it causes the min/max size didn't adjust to the toplevel surface.

For resolve this issue, set wait_next_commit flag to True when doing min/max_size_set.

Change-Id: If8534017bdae2d19f45f34b06620f0ca03cc9b2d

22 months agoe_hwc_window: handle invalid case of releasing the usable queue buffer 56/286356/1 accepted/tizen/unified/20230106.165048
Changyeon Lee [Wed, 4 Jan 2023 09:03:07 +0000 (18:03 +0900)]
e_hwc_window: handle invalid case of releasing the usable queue buffer

if client attach general buffer after the queue buffer is attached,
the usable queue buffer is released and client can not get the queue buffer
for next frame.
it is invalid sequence of client rendering but we should handle this case.
add checking the usable queue buffer is relased and unset queue of ec.

Change-Id: I31ae261974fb3b4d76bf40cfcfbb02d22dd6b36d

22 months agoe_service_quickpanel: check qp_ignore_indicator_mode config while handling gesture... 56/286256/1 accepted/tizen/unified/20230103.164733
Doyoun Kang [Tue, 3 Jan 2023 01:12:29 +0000 (10:12 +0900)]
e_service_quickpanel: check qp_ignore_indicator_mode config while handling gesture event

If the qp_ignore_indicator_mode is set, then e doesn't send the gesture event to indicator

Change-Id: Ife43fffddd082fc9fcf9b4434b4068d9a1d49b38

22 months agoe_config: add qp_ignore_indicator_mode configuration 49/286249/1
Doyoun Kang [Mon, 2 Jan 2023 23:28:45 +0000 (08:28 +0900)]
e_config: add qp_ignore_indicator_mode configuration

If this configuration is set, the quickpanel service window can be shown regardless of the indicator's
state (such as shown, hidden, etc).

FYI,
default value is 0, it means that the quickpanel service can only be shown when the indicator is shown.

Change-Id: I33d13f2e63905d5032cbe60722dd7fc483c72e07

22 months agoe_client: set above_show_pending flag if non alpha window while calculating visibility 91/286091/1
Doyoun Kang [Tue, 27 Dec 2022 10:40:21 +0000 (19:40 +0900)]
e_client: set above_show_pending flag if non alpha window while calculating visibility

Change-Id: If25a7129bd6f4f4edcd9ae869183f80ad75b6026

22 months agoe_info_server: add client name to file of dump buffers 60/286060/1 accepted/tizen/unified/20221229.165935
Changyeon Lee [Mon, 26 Dec 2022 05:10:20 +0000 (14:10 +0900)]
e_info_server: add client name to file of dump buffers

Change-Id: Ia5d68468201949b511af8b9908e24db0d9f1a855

22 months agoe_policy_wl: do not send allowed_aux_hint event when delete the aux_hint 52/285952/1
Junseok Kim [Thu, 22 Dec 2022 07:03:11 +0000 (16:03 +0900)]
e_policy_wl: do not send allowed_aux_hint event when delete the aux_hint

The event that "tizen_policy_allowed_aux_hint" means the aux hint allowed, not the request allowed.
But the allowed_aux_hint event sent when the aux_hint_del proceed.
It seems misuse of event and client can understand as the deleted aux hint still allowed.

For prevent misunderstanding and correct the mean of event, don't send allowed_aux_hint when delete the aux hint.

Change-Id: I0d7c5fba29963f0638bc9832b9ca1dd5f34edf45

22 months agoe_comp_wl: add cursor_timer when mouse_wheel and mouse_down/up 03/285903/1
duna.oh [Tue, 13 Dec 2022 06:25:28 +0000 (15:25 +0900)]
e_comp_wl: add cursor_timer when mouse_wheel and mouse_down/up

add scenarios when setting cursor hide timer
1. when mouse wheel is scrolled.
2. do not set hide timer when mouse down occurs, and set hide timer
when mouse up occurs.

Change-Id: I3ff45dcd1ffcef9dff30acb9487992fe43e8cbe1

23 months agoe_comp_object: fix continuously generate E_EVENT_CLIENT_PROPERTY 83/285683/1
Changyeon Lee [Fri, 16 Dec 2022 08:12:59 +0000 (17:12 +0900)]
e_comp_object: fix continuously generate E_EVENT_CLIENT_PROPERTY

if ec has pending geometry but client does not send wl_surface_commit
request, E_EVENT_CLIENT_PROPERTY is continually generated with below
sequence.

1. pending_geometry and changes.pos of client is set true
2. changes.pos is set false and evas_object_move is called in
   _e_client_eval(it is called in idle_enterer_before)
3. changes.pos is set true in _e_comp_intercept_move because
   ec has pending geometry
4. E_EVENT_CLIENT_PROPERTY is added in _e_client_eval
5. ecore main loop is wake up with E_EVENT_CLIENT_PROPERTY
6. step 2 is repeated

Change-Id: Id817e13569759c0807188e2bbd342274454673ae

23 months agovideo: Move video update job to E_MAIN_HOOK_POST_CLIENT_IDLER_BEFORE 54/285654/1 accepted/tizen/unified/20221219.024726
Seunghun Lee [Thu, 15 Dec 2022 08:16:10 +0000 (17:16 +0900)]
video: Move video update job to E_MAIN_HOOK_POST_CLIENT_IDLER_BEFORE

This patch is to change the order of jobs like this:

Old:
  video update job -> e_client_idler_before() -> hwc commit job

New:
  e_client_idler_before() -> video update job -> hwc commit job

The problem with the old way is that if the E_Client for video gets
updated for some reason in the process of e_client_idler_before(), then
video update job couldn't get a chance to be up to date with it and hwc
commit job would end up getting done without the update.

It would be obviously better if we could commit all changes to onscreen
at once as far as possible. And this patch is made to achieve it.

It is necessaty to add a new hook point called
E_MAIN_HOOK_POST_CLIENT_IDLER_BEFORE in e_main, because there is no way
to insert a video update job handler between e_client_idler_before() and
hwc commt job,

The callbacks associated with the hook point will be called right after
the call e_client_idler_before().

This way, video update job will be able to get a chance to be up to date
with changes which might be made in the process of
e_client_idler_before().

Change-Id: I857e0efcb12e7a06c18921bdfc6e6077fd5f521d

23 months agoe_client: Appy base output resolution to subsurfaces 53/285653/1
Seunghun Lee [Thu, 15 Dec 2022 06:19:16 +0000 (15:19 +0900)]
e_client: Appy base output resolution to subsurfaces

This patch is to apply base output resolution of toplevel window to all
subsurfaces. So, it removes call to e_comp_wl_hook_del() and continue to
listen E_COMP_WL_HOOK_SUBSURFACE_CREATE hook point.

Some wayland clients repeatedly reuse wl_surface to create wl_subsurface
with a different parent from previous one. The problem is that the
subsurface can't get applied with base output resolution of a new
toplevel window in this case.

To apply base output resolution of a new parent to all associated
sub-surfaces, we should call e_client_transform_core_update() for a
toplevel window whenever a subsurface gets created with a new parent.

Since e_client_transform_core_update() recursively updates transform for
all sub-surfaces, calling e_client_transform_core_update() for a
toplevel window should also update transform for all subsurfaces.

Change-Id: I3253f83e0ab1cf1f5381bbfba2693d9d642d88ca

23 months agoe_policy_wl: set desk_iconify_skip to DESKTOP type window 41/285341/1 accepted/tizen/unified/20221214.053546
Doyoun Kang [Fri, 9 Dec 2022 02:57:42 +0000 (11:57 +0900)]
e_policy_wl: set desk_iconify_skip to DESKTOP type window

Change-Id: If553ac1b182c2ee7451092460ec977dd25ca6aaf

23 months agoe_client: add e_client_desk_iconify_skip_set/get APIs 40/285340/1
Doyoun Kang [Fri, 9 Dec 2022 02:54:49 +0000 (11:54 +0900)]
e_client: add e_client_desk_iconify_skip_set/get APIs

We provide APIs for setting/getting a value to skip iconify by desk as below.
- E_API void e_client_desk_iconify_skip_set(E_Client *ec, Eina_Bool skip);
- E_API Eina_Bool e_client_desk_iconify_skip_get(E_Client *ec);

Change-Id: I680a0301d72c71822bf8b83c3fdf0f203559cdc0

23 months agoe_client: check ec->frame is visible when finding focusable ec in topmost focus policy 29/285329/1
Junseok Kim [Wed, 7 Dec 2022 06:46:36 +0000 (15:46 +0900)]
e_client: check ec->frame is visible when finding focusable ec in topmost focus policy

There was a bug that focus given to the iconified window that fully obscured by evas object hide (not unmap, called by E20 module).
When the evas object hide called, the window was uniconic state so that state of visibility client still be E_VIS_ICONIFY_STATE_UNICONIC.
But, the visibility of the window turn to fully obscured, and iconified by visibility.

Finally, the window has property as below:
 - stack was topmost window of normal layer
 - focused: true
 - visibility.obscured : fully obscured (2)
 - vc->state : E_VIS_ICONIFY_STATE_UNICONIC (1)
 - iconic : true (1)
 - exp_iconify.by_client : false (0)
 - ec->frame visible : false
 - ec->mapped : true

The window will be show again by next visibility calculate, but the window have to loose their focus in this time.
for fix this issue, do not give focus to the window when the evas object is not visible.

NOTE: This is only for topmost focus policy.
      In focus history policy case, the window will be show soon so that the window can take focus.

NOTE2: This patch replaces the patch 2b0f37d491a700fbec56e91618825cc2dedd5585,
       which patch is prevent issue in topmost focus policy.

Change-Id: I21a0e8fd8610f7aa878e616cfa671ea49c5811e9

23 months agoe_comp_wl: add log of gap idle_exiter between prepare callback of wayland event loop 08/285308/1
Changyeon Lee [Wed, 7 Dec 2022 10:38:36 +0000 (19:38 +0900)]
e_comp_wl: add log of gap idle_exiter between prepare callback of wayland event loop

if the job of main thread has much time or does not get CPU scheduling, the synchronous call
(ex: wl_display roundtrip) is blocked until the job is done. it is the regular operation of
a synchronous call but sometimes it has too much time.
this patch is for debugging it.

Change-Id: Ife0d9f0ad32807fd892c7b2f991d966427c0c72c

23 months agoe_policy_visibility: change vc->state to iconic while canceling grab 03/285303/1
Doyoun Kang [Thu, 8 Dec 2022 23:43:45 +0000 (08:43 +0900)]
e_policy_visibility: change vc->state to iconic while canceling grab

If the E_Vis_Client is under running uniconify_render, then we change vc->state value
to E_VIS_ICONIFY_STATE_ICONIC in _e_vis_client_grab_cancel() function.

Change-Id: Ib67e414bb1243f42c23c47c10a7a167b903a51e6

23 months agoe_devicemgr_wl: set the list of 'dev->resources' to NULL after eina_list_free() 45/285045/1
duna.oh [Mon, 5 Dec 2022 03:54:39 +0000 (12:54 +0900)]
e_devicemgr_wl: set the list of 'dev->resources' to NULL after eina_list_free()

Change-Id: If9ee0cf2500c25e4a69dfbe763d2af6d11842955

23 months agovideo: Refactor the function for cropping viewport 61/284961/1
Seunghun Lee [Tue, 15 Nov 2022 07:19:21 +0000 (16:19 +0900)]
video: Refactor the function for cropping viewport

This is about reconsidering variable and function names to enhance
readability.

No functional changes.

Change-Id: Ia8ea36d7c4af13992e17da82fbc38a7bbbd64351

23 months agovideo: Fix transform translation 60/284960/1
Seunghun Lee [Thu, 1 Sep 2022 00:09:35 +0000 (09:09 +0900)]
video: Fix transform translation

The function _e_video_hwc_coord_transform() did actually translate the
90 and 270 degree rotations into the inverse of what it's supposed to
do.

Since it's to get the points in buffer-local coordinates from physical
screen-local coordinates, it has to translate 90 and 270 degree
rotations into inverse of buffer_transform().

Change-Id: Ib48fe10dd6213888bf563e5645f8954d34cf36e2

23 months agovideo: Handle negative positioned video 59/284959/1
Seunghun Lee [Thu, 11 Aug 2022 05:43:32 +0000 (14:43 +0900)]
video: Handle negative positioned video

If video sub-surface has negative position, e_comp_wl_output_find()
returns NULL unless there is an output which has negative position.
So, it would eventually fail to calculate physical geometry to be
applied to physical device associated with the output.

To resolve this problem, here it uses e_comp_wl_output_find_all() to get
all outputs on which a E_Client is overlapped. And then it uses a first
output among the returned outputs because it's not ready yet to support
for displaying video on multi output.

The same is true of e_comp_zone_xy_get(). As the name suggests, the
e_comp_zone_xy_get() function returns a zone which contains given x, y
position. So it returns nothing with negative x, y position unless there
is a zone which has negative position.

For this reason, this patch uses a zone referenced directly by E_Client
instead of the value returned from e_comp_zone_xy_get().

Change-Id: I5c20927ab418e4194209790a1c5a4b8bc50ebb38

23 months agoe_comp_wl: Add e_comp_wl_output_find_all() 58/284958/1
Seunghun Lee [Thu, 11 Aug 2022 05:21:19 +0000 (14:21 +0900)]
e_comp_wl: Add e_comp_wl_output_find_all()

The function returns an array containing all E_Comp_Wl_Output on which
given E_Client is placed.

It's been fine with e_comp_wl_output_find() so far, but if given
E_Client is the window placed on negative poisition, then
e_comp_wl_output_find() returns null unless there is a output that
has negative position which doesn't make sense.

Change-Id: I3ddb891803ff88ff0de48dbc58055ac190a2fa84

23 months agoe_comp_object: defer move,resize,clear when render_update_lock is enabled 96/284896/1 accepted/tizen/unified/20221201.164707
Changyeon Lee [Wed, 2 Nov 2022 10:46:32 +0000 (19:46 +0900)]
e_comp_object: defer move,resize,clear when render_update_lock is enabled

there is a visual bug when client move and resize buffer when render_update_lock
is enabled because evas_object is resized and moved but buffer of client is not
updated. (buffer of render_update_lock is fill to evas_image_object)
and buffer of render_update_lock is cleared in comp_object if e_comp_object_clear
is called so defer clear of comp_object until render_update_lock is disabled.

Change-Id: Iabe67a558c7ea62d0f84cd6c041f2f24b32a3c1b

23 months agoe_comp_object: fix missing unrference buffer of render_update_lock 00/284800/1 accepted/tizen/unified/20221129.172515
Changyeon Lee [Mon, 31 Oct 2022 06:46:34 +0000 (15:46 +0900)]
e_comp_object: fix missing unrference buffer of render_update_lock

Change-Id: Iaf018573a808b95f7e69666552b981507445078a

23 months agoe_policy_wl: Add new aux hint for set visibility.ignore_geometry 24/284724/1 accepted/tizen/unified/20221128.014952
Junseok Kim [Thu, 27 Oct 2022 08:49:24 +0000 (17:49 +0900)]
e_policy_wl: Add new aux hint for set visibility.ignore_geometry

Added new aux hint for set visibility.ignore_geometry property of the target client.
hint: "wm.policy.win.visibility.ignore_geometry"
val: "1": set ignore_geometry / "0": unset ignore_geometry

Change-Id: Id912cc1bf2309dabfe77cd1a9c9bb2000c01cb77

23 months agoe_config: Add configuration to adjust visibility.ignore_geometry to all windows 23/284723/1
Junseok Kim [Thu, 27 Oct 2022 06:09:00 +0000 (15:09 +0900)]
e_config: Add configuration to adjust visibility.ignore_geometry to all windows

For adjust visibility.ignore_geometry to whole windows, added the configuration that calc_vis_ignore_geometry.
When the calc_vis_ignore_geometry is True, all of the new E_Client set the visibility.ignore_geometry to True.

It is not fix each client's visibility.ignore_geometry value to configured value.
each client can change their value at any time.

Change-Id: I7804183a7bb340d7b725eb5b198ba00994123bc1

23 months agoe_client: Add ignore_geometry property to E_Client to ignore geometry calc when vis... 22/284722/1
Junseok Kim [Thu, 27 Oct 2022 06:03:02 +0000 (15:03 +0900)]
e_client: Add ignore_geometry property to E_Client to ignore geometry calc when vis calc

Ignore_geometry is property for ignore geometry calculation during calculate visibility after once the window show and the property set.
The window that set visibility.ignore_geometry always retain unobscured even if the window is stack in lowest after client attach buffer that not NULL.
It makes the client to do something their jobs under other client window.

Change-Id: Idce08255223d451cbd39b09166849a45cc9586c3

23 months agodevicemgr: send max_touch_count events to all tizen_input_device_manager bound 37/284537/1
duna.oh [Thu, 17 Nov 2022 02:22:57 +0000 (11:22 +0900)]
devicemgr: send max_touch_count events to all tizen_input_device_manager bound

This patch is modification of the following commit.

-------------------------
commit f57a73ce40323b8c2b1f5847375090165c52dcc6
Author: duna.oh <duna.oh@samsung.com>
Date:   Thu Nov 10 14:34:33 2022 +0900

    e_devicemgr: create tizen_input_devices only for first bound seat & manager

Change-Id: I92cc3a49f7419fe60352bbaddfdfce59d573a5ac

23 months agoe_devicemgr: add null checking and break from for-loop 36/284536/1
duna.oh [Fri, 11 Nov 2022 02:35:59 +0000 (11:35 +0900)]
e_devicemgr: add null checking and break from for-loop

Change-Id: I83d7b62195b21997cec9e0c242644506dc37e587

23 months agoe_client: Unset current focus when the new focusable ec found 10/284510/1
Junseok Kim [Fri, 18 Nov 2022 05:43:22 +0000 (14:43 +0900)]
e_client: Unset current focus when the new focusable ec found

There was a bug that couldn't receive focus changed event when client unobscured by activate using topmost focus policy.

For more detail, in topmost focus policy, issues following below sequence.
1. Focused window(winA) requests Activate below to fully obscured window(winB).
2. winA requests Activate before winB showing.

The Activate below request didn't doing uniconify render, so stack was changed immediately.
and it cause visiblity changes immediately and visibility changed event send to each client.

The winB didn't focused because of the winB is not shown till the uniconify rendering by visibility.
in this case, winA still focused but winA is not focusable window before winB shown or winA Activated.

It can cause the client didn't receive focus changed event after the client unobscured.
(client regards the fully-obscured means loose focus)

for fix this problem, always focus unset before focused window when there're new focusable window.

Change-Id: Iaccfa5ed77bd46f58a4f82acd9109e534da54606

23 months agoe_client: modify return x and y values of e_client_geometry_get() 91/284491/1
Doyoun Kang [Thu, 17 Nov 2022 04:42:00 +0000 (13:42 +0900)]
e_client: modify return x and y values of e_client_geometry_get()

If the ec->frame's size are 0x0, it means that the geometry of ec->frame is invalid.
In this case, e_client_geometry_get() returned the size value using ec's size itself,
but position value returned by invalid value.

This patch changes the returned geometry of e_client_geometry_get() to ec's geometry
itself in this case.

Change-Id: Ifb465d4d78fb02a0f207b46fd939f03e6433bf4b

23 months agoe_comp_wl_tizen_hwc: reduce hwc_commit_feedback timeout to 5 second 61/284461/1
Changyeon Lee [Thu, 17 Nov 2022 10:22:21 +0000 (19:22 +0900)]
e_comp_wl_tizen_hwc: reduce hwc_commit_feedback timeout to 5 second

Change-Id: If3e7f03e651ade360d8513611dd52b41f749586c

2 years agoe_client: Modify to have focus even the window is in defer_focus_stack 44/284444/1
Junseok Kim [Fri, 11 Nov 2022 01:47:34 +0000 (10:47 +0900)]
e_client: Modify to have focus even the window is in defer_focus_stack

There was a bug that window couldn't get focus even if the window requests activate.

For more detail, there're 2 windows, that one is partial sized, above layer window(winA) like as floating window, and the other is full sized, normal layer window(winB) like as homescreen.

First, winB gets focus by touch as launching new app icon of the user.
By the user operation, a new fullsized, normal layer window (winC) launchs with create, show, and activate request.

Next, the winB fully obscured by new window winC.
In this timing, the winC is not visible but winB prepares hide by wm.
When doing hide, the e_client_revert_focus called for find previously focused window.

The winC is in defer focus stack but it skiped due to it isn't visible yet.
Finally, the winC couldn't get focus even if it requested activate and focus given to winA.

For fix this problem, check the window is in defer_focus_stack when focusable check.

Change-Id: I34e68d41d2cfb183d4eab956abf6472708e295bf

2 years agoe_client: do not focus to hidden window 19/284319/1 sandbox/junskim/action accepted/tizen/unified/20221118.021714
Junseok Kim [Tue, 15 Nov 2022 12:28:35 +0000 (21:28 +0900)]
e_client: do not focus to hidden window

There was a bug that focus given to topmost not unmapped hidden window.
It caused the window hide pended by e20 module, and the window requests activate.
for fix this issue, check the evas_object of the window is visible when focusable check.

Change-Id: I7a3d8c467ea3c39b1d0d77c5692877bcbf9e4f0d

2 years agoe_client: add e_client_pos_set before calling defer_move in e_client_unmaximize 00/284300/1
Doyoun Kang [Tue, 15 Nov 2022 02:10:44 +0000 (11:10 +0900)]
e_client: add e_client_pos_set before calling defer_move in e_client_unmaximize

Change-Id: Iefe344d88a1dc3c6c23541caec6d390abed30cf5

2 years agosupport a new feature for maximize direction 99/284299/1
Doyoun Kang [Tue, 8 Nov 2022 08:27:23 +0000 (17:27 +0900)]
support a new feature for maximize direction

We add a feature for maximize direction.
- New enumeration : E_Maximize_Direction
- Implement a function for tizen_policy_set_maximize_direction

Change-Id: Ibb7741babcf050fd3f3d73293a0e2a4ea1f2f361

2 years agoe_info: Add functionaility for add and delete aux hint of window 89/284289/1
Junseok Kim [Thu, 10 Nov 2022 05:14:00 +0000 (14:14 +0900)]
e_info: Add functionaility for add and delete aux hint of window

Added new functionality for add and delete aux hint of window

enlightenment_info -aux_hint add [win id] [hint id] [hint] [val]
 - Add or replace aux hint of the window that matched hint id.

enlightenment_info -aux_hint del [win id] [hint id]
 - Delete aux hint of the window that matched hint id.

Change-Id: I7c9ac4f9b2bbd7f36fc8a4e3843bda093fde1228

2 years agoe_devicemgr: use different Eina_List variable for nested for-loop 41/284141/1 accepted/tizen/unified/20221115.022422
duna.oh [Thu, 10 Nov 2022 06:36:55 +0000 (15:36 +0900)]
e_devicemgr: use different Eina_List variable for nested for-loop

Change-Id: Iff0453d310d2e84ce01e8583e82046c99c326521

2 years agoe_devicemgr: create tizen_input_devices only for first bound seat & manager 40/284140/1
duna.oh [Thu, 10 Nov 2022 05:34:33 +0000 (14:34 +0900)]
e_devicemgr: create tizen_input_devices only for first bound seat & manager

If a wayland_client uses ecore_wl library and efl_util API,
it binds two pairs of wl_seat & tizen_input_device_manager.

ecore_wl listens wayland events (ex. device_add/device_remove) and send
requests properly. (ex. tizen_input_device_release)

However efl_util dispatches event queue only when efl_util API is called.
It doesn't send tizen_input_device_release requests and causes resource leaks.

To fix this resource leak,
this patch is to create tizen_input_device resources only for
the first bound wl_seat & first bound tizen_input_devcie_manager
which ecore_wl binds.
efl_util always binds wl_globals after ecore_wl2 binds ones.

Change-Id: I47c741a36c2205e2bde2a630a4b66d3794aa23ef

2 years agoe_devicemgr: fix the memory leak detected by static analysis tool 39/284139/1
duna.oh [Mon, 7 Nov 2022 08:20:01 +0000 (17:20 +0900)]
e_devicemgr: fix the memory leak detected by static analysis tool

Change-Id: I9733fb3941c67d6975f2d1572e0ecebacb86db63

2 years agoe_devicemgr: add error logs when failing to alloc structure 38/284138/1
duna.oh [Mon, 7 Nov 2022 08:22:08 +0000 (17:22 +0900)]
e_devicemgr: add error logs when failing to alloc structure

Change-Id: I27ac7b2f3e47be7e963f090130a575d388bcd43e

2 years agoe_devicemgr: add data struct for tizen_input_device_manager 77/283877/2
duna.oh [Fri, 4 Nov 2022 10:15:47 +0000 (19:15 +0900)]
e_devicemgr: add data struct for tizen_input_device_manager

E_Devicemgr_Input_Device_Mgr_Data is a data for tizen_input_device_manager.
This has a Eina_List of E_Device_Input_Device_User_Data and manager's resource.
When a client unbinds tizen_input_device_manager, mgr_data iterates a list
of device_user_data and cleans up device's resource.

Change-Id: I7fa0650a1cf25b177b2a1a88dc6e1b8f80ad4409

2 years agoRevert "e_client: modified code for e_client_unmaximize" 34/283934/1 accepted/tizen/unified/20221109.171116
Doyoun Kang [Sun, 6 Nov 2022 01:28:55 +0000 (10:28 +0900)]
Revert "e_client: modified code for e_client_unmaximize"

This reverts commit 51cba1f7c4c8cf2fa3508d191c2ba54e9dc3d5ec.

Change-Id: I1960204996f99374ac5b7e725b9462afc3505363

2 years agoviewport: Do not use evas_object_event_callback_del() 29/283929/1
Seunghun Lee [Mon, 7 Nov 2022 08:18:13 +0000 (17:18 +0900)]
viewport: Do not use evas_object_event_callback_del()

For short, the `evas_object_event_callback_del_full()` should be used
instead of `evas_object_event_callback_del()`.

The crash happened as the backtrace shown below, and it seems that the
crash was due to the misuse of `evas_object_event_callback_del()`.
This patch also log more about the viewport just in case the patch may
not fix the crash.

backtrace:
(gdb)bt

  #0  0x000d6e98 in e_object_is_del (obj=0x6) at /usr/src/debug/enlightenment-0.20.0/src/bin/e_object.c:106
  #1  0x00086088 in _e_comp_wl_viewport_cb_parent_show(data=0x1d50c70, e=<optimized out>, obj=<optimized out>, event_info=<optimized out>) at /usr/src/debug/enlightenment-0.20.0/src/bin/e_comp_wl_viewport.c:572
  #2 0xb5d91df6 in _eo_evas_object_cb (data=0x207e4c8, event=<optimized out>) at /usr/src/debug/efl-1.25.1/builddir/../src/lib/evas/canvas/evas_callbacks.c:181
  ...

The evas_object_event_callback_del() is to remove the most recently
added callback from the object. Having used it in `e_comp_wl_viewport.c`
could have caused unintentional removal of another callback depending on
the timing of creation and destruction of several viewports, and this
eventually could result in a crash.

I couldn't find the clear evidence that this really led the crash, but
let me give you an example what situation can make this crash.

1. There are 2 viewports created with the same parent. So, 2 viewports
would add a callback for its own. I will call both viewport as `A` and
`B`, and `A` is created before `B`.

2. The viewport `A` try to delete its callback from the parent evas
object because of the change of subsurface parent by calling
`evas_object_event_callback_del()`.  And this will unintentionally
delete the callback of `B`, not `A` because the callback of `B` is the
most recently added one.

3. Let's say the viewport `A` gets deleted by `tizen_viewport.destroy`,
and it does not call the `evas_object_event_callback_del_full()` because
`viewport->epc` must already be null.  And now, the data for the
callback `A` becomes freed memory, but the callback `A` is still in
callback list of parent object.

4. Event if the viewport `B` gets deleted by `tizen_viewport.destroy`,
it won't be able to remove any callbacks with
`evas_object_event_callback_del_full()` because the callback of `B` has
already been removed by the process 2.

As I mentioned, I'm not sure this really led the crash but I believe and
hope that this will fix the crash.

Change-Id: Ie92900df80d2351bbf9054fd3c4e9e6184b67d57

2 years agoRevert "viewport: Cleanup setting parent and more log" 28/283928/1
Seunghun Lee [Mon, 7 Nov 2022 08:17:09 +0000 (17:17 +0900)]
Revert "viewport: Cleanup setting parent and more log"

This reverts commit 3cd0f29865d9508cc511228f08fffc64ff46bfbd to re-write
commit message.

Change-Id: I9937d1050fba4cb1052d6a3b478e6bdc183ca70d

2 years agoviewport: Cleanup setting parent and more log 04/283804/1
Seunghun Lee [Wed, 2 Nov 2022 08:50:12 +0000 (17:50 +0900)]
viewport: Cleanup setting parent and more log

The crash happened as the backtrace shown below but I couldn't find the
cause. So, this patch logs more about viewport to help find the cause of
problem next time if it will happen again.

backtrace:
 (gdb)bt
 #0  0x000d6e98 in e_object_is_del (obj=0x6) at /usr/src/debug/enlightenment-0.20.0/src/bin/e_object.c:106
 #1  0x00086088 in _e_comp_wl_viewport_cb_parent_show (data=0x1d50c70, e=<optimized out>, obj=<optimized out>, event_info=<optimized out>) at /usr/src/debug/enlightenment-0.20.0/src/bin/e_comp_wl_viewport.c:572
 #2  0xb5d91df6 in _eo_evas_object_cb (data=0x207e4c8, event=<optimized out>) at /usr/src/debug/efl-1.25.1/builddir/../src/lib/evas/canvas/evas_callbacks.c:181
 ...

Change-Id: I7be6210c608ca02d55d59a6c65c60a8bb04873ba

2 years agoe_policy_wl: calculate aspect ratio including header and footer height 26/283726/1
Junseok Kim [Thu, 6 Oct 2022 03:10:45 +0000 (12:10 +0900)]
e_policy_wl: calculate aspect ratio including header and footer height

There is a windows that have their own decorator that header and footer.
And the window need to resize using aspect ratio to the content except the fixed decorator size.

for those windows, added aux hint to set their header and footer height and adjusted to calculate aspect ratio resize.
When the client sets the aux hint, then the enlightenment calculates aspect ratio without header and footer height.

aux hint keys:
wm.policy.win.resize.header_height
wm.policy.win.resize.footer_height

aux hint values:
unsigned integer

Change-Id: I033c73197951c975145d2ecaa00bdc96e4e8f798

2 years agoe_policy_wl: tizen_policy version up to 11 14/283614/2 accepted/tizen/unified/20221102.172739
Doyoun Kang [Mon, 31 Oct 2022 07:26:47 +0000 (16:26 +0900)]
e_policy_wl: tizen_policy version up to 11

We update tizen_policy version to 11 for supporting desktop window type.

Change-Id: Ib630f8f3789137a5061d072459bbc6e4a3613e33

2 years agoe_desk: do not deactive hwc when desk zoom is set 13/283613/1
Changyeon Lee [Tue, 25 Oct 2022 04:35:11 +0000 (13:35 +0900)]
e_desk: do not deactive hwc when desk zoom is set

deactive of hwc is not needed because hwc does not use device state
when pp of hwc is set or desk_zoom enable state of client is set.

this patch is for supporting hwc in case of desk_zoom of client is
not appllied.

Change-Id: I7c9b04ff2559d8240373d3a334c16f37f137d905

2 years agoe_client: add APIs for getting desk_zoom enable state 78/283578/1
Doyoun Kang [Thu, 27 Oct 2022 09:32:01 +0000 (18:32 +0900)]
e_client: add APIs for getting desk_zoom enable state

We add APIs to get/set the enable state whether the ec is under running desk_zoom or not.
- void e_client_desk_zoom_enable_set(E_Client *ec, Eina_Bool enable)
- Eina_Bool e_client_desk_zoom_enable_get(E_Client *ec)

Change-Id: I733d84fb0b96066577029aabe4724e9ce7e0ea09

2 years agoe_client: use e_client_frame_geometry_set in e_client_fullscreen 97/283497/1
Doyoun Kang [Thu, 27 Oct 2022 08:34:50 +0000 (17:34 +0900)]
e_client: use e_client_frame_geometry_set in e_client_fullscreen

We changed code to use e_client_frame_geometry_set() instead of evas_object_geometry_set()
to move and resize window synchronously in e_client_fullscreen().

Change-Id: I9cf3385cbceeccad2b25f3aaba4b8a71e3140625

2 years agoe_policy: add E_POLICY_HOOK_CLIENT_AUX_HINT_CHANGED hook 91/283391/1
Doyoun Kang [Tue, 25 Oct 2022 10:37:44 +0000 (19:37 +0900)]
e_policy: add E_POLICY_HOOK_CLIENT_AUX_HINT_CHANGED hook

Change-Id: I9a824d37f055ccd7161d87aba00ad5579140f1c1

2 years agoRevert "keyrouter: replace eina_safety error log with e_log" 54/283354/1
duna.oh [Tue, 25 Oct 2022 04:48:25 +0000 (13:48 +0900)]
Revert "keyrouter: replace eina_safety error log with e_log"

This reverts commit c82b257197071559463b026880fdd6c912e096d3.

Change-Id: I336deac6e0c9334fe3cce7a4949e7fb1f2f963ba

2 years agoRevert "keyrouter: simplify chained if-statements with AND operator" 53/283353/1
duna.oh [Tue, 25 Oct 2022 04:48:12 +0000 (13:48 +0900)]
Revert "keyrouter: simplify chained if-statements with AND operator"

This reverts commit 672574a5482de9419e372108762b1d9983df171c.

Change-Id: I9cc0e4a92d9681d01fb44d702e6db2a60f04e3ec

2 years agoRevert "keyrouter: add pname(process name) of client in logs" 52/283352/1
duna.oh [Tue, 25 Oct 2022 04:47:53 +0000 (13:47 +0900)]
Revert "keyrouter: add pname(process name) of client in logs"

This reverts commit 51b8d115c91919115b116bcf5275a9a150d70fde.

Change-Id: I35af6f27219d7fb230b0064315b91d4bb5c4bda0

2 years agoe_client: modify code to call maximize_pre/unmaximize_pre callback 62/283262/1
Doyoun Kang [Fri, 21 Oct 2022 05:57:37 +0000 (14:57 +0900)]
e_client: modify code to call maximize_pre/unmaximize_pre callback

There is a bug that the maximize_done/unmaximize_done evas_object_smart_callback
doesn't call after calling maximize_pre/unmaximize_pre evas_object_smart_callback
in some case.

This resolve this problem

Change-Id: I6d30dc2897b441574c92f46d68e77e3501e412b1

2 years agoe_msg: added explicit type conversion to limit length 89/283189/2
Junseok Kim [Mon, 17 Oct 2022 06:03:42 +0000 (15:03 +0900)]
e_msg: added explicit type conversion to limit length

Change-Id: I5f448d8e88b385de627b6c4c782da5ae7cd41222

2 years agokeyrouter: add pname(process name) of client in logs 86/283186/1
duna.oh [Tue, 18 Oct 2022 01:45:44 +0000 (10:45 +0900)]
keyrouter: add pname(process name) of client in logs

Change-Id: I141430ee891e49a953c2ab11a2c52c34b4b8ccfe

2 years agokeyrouter: simplify chained if-statements with AND operator 85/283185/1
duna.oh [Tue, 18 Oct 2022 01:10:24 +0000 (10:10 +0900)]
keyrouter: simplify chained if-statements with AND operator

Change-Id: I4117fcb3fae1284906b30ce6d657e47b7efc3e22

2 years agokeyrouter: replace eina_safety error log with e_log 84/283184/1
duna.oh [Tue, 18 Oct 2022 01:00:19 +0000 (10:00 +0900)]
keyrouter: replace eina_safety error log with e_log

provide more logs about the client which is exclusively
grabbing the key.

Change-Id: Ia4e14735cb740110204123fc3a0f9766be279c96

2 years agoe_client: modified code for e_client_unmaximize 57/283157/2
Doyoun Kang [Wed, 19 Oct 2022 06:28:31 +0000 (15:28 +0900)]
e_client: modified code for e_client_unmaximize

We changed code to use e_client_util_move_resize_without_frame() instead of
e_policy_visibility_client_defer_move().

An e_client_util_move_resize_without_frame() has a functionality for synchronizing
move and resize.

Change-Id: Idb7d9eee65f0f13fa579b835c8383f1e08e8b99e

2 years agoe_comp_object: add checking null for reducing error log 17/283117/1
Changyeon Lee [Mon, 17 Oct 2022 03:32:59 +0000 (12:32 +0900)]
e_comp_object: add checking null for reducing error log

image object and shadow object can be null because it is created
in intercept show callback.

Change-Id: If83bba9c35abeca0d71d59a5f9416717e2f926e3

2 years agoe_comp_object: change log of mismatch between pixmap and frame size to info level 16/283116/1
Changyeon Lee [Mon, 17 Oct 2022 07:02:06 +0000 (16:02 +0900)]
e_comp_object: change log of mismatch between pixmap and frame size to info level

pixmap and frame size can be misatch for reducing memory in case of video subsurface

Change-Id: I8dffb3cd68b814af26b7d3283eeae257316935fc

2 years agoe_hwc_window: remove error log in case not implemented case 15/283115/1
Changyeon Lee [Mon, 17 Oct 2022 03:29:51 +0000 (12:29 +0900)]
e_hwc_window: remove error log in case not implemented case

Change-Id: I62666c3542ea0f981b1232f9c9ad8845cd8df766

2 years agoe_pixmap: changed eina_safety to if clause to reduce error log 42/283042/1
Junseok Kim [Fri, 14 Oct 2022 07:46:39 +0000 (16:46 +0900)]
e_pixmap: changed eina_safety to if clause to reduce error log

Change-Id: I5f78bda6bc244ec69eef254ede83c2d8db75a603

2 years agoe_client: changed eina_safety to if clause to reduce log 41/283041/1
Junseok Kim [Fri, 14 Oct 2022 02:06:53 +0000 (11:06 +0900)]
e_client: changed eina_safety to if clause to reduce log

Change-Id: I48f5467c8e318d21798bf6d21888f79b8dffb345

2 years agoe_policy_visibility: fix bug for checking a visible state of transient_child 75/282875/2
Doyoun Kang [Wed, 12 Oct 2022 23:20:18 +0000 (08:20 +0900)]
e_policy_visibility: fix bug for checking a visible state of transient_child

There was a bug that the parent window was uniconified even though its child was not visible.
This was because that the child was uniconic state but its visibility was unknown state.
(this means it was not calculated visibility and it was not shown yet).

To resolve this problem, we add code to check whether child's visibility is unknown
in _e_policy_check_transient_child_visible function.

Change-Id: I80604558afa86fac020e0681a3bcdb8adb75bb84

2 years agoe_client: restore the code for resizing mode 74/282874/1 accepted/tizen_7.0_unified_hotfix tizen_7.0_hotfix accepted/tizen/7.0/unified/hotfix/20221116.110738 accepted/tizen/unified/20221013.100053 accepted/tizen/unified/20221013.130851 tizen_7.0_m2_release
Junseok Kim [Tue, 4 Oct 2022 10:14:57 +0000 (19:14 +0900)]
e_client: restore the code for resizing mode

There was a bug that the resizing didn't uses the mode that client requested.
It caused by resize_mode did not applied to ec->resize_mode.
For fix it, restore resize_mode code.
And accoding to the policy, the Non-floating window can also resize with interactive resize.
So, removed checking the floating window from legacy code.

Change-Id: I750e4069701de0b144faf1a84cc3b56f5489dcf6

2 years agowinfo: add -desk test option for iconify_toggle 25/282825/1
Doyoun Kang [Wed, 12 Oct 2022 01:39:03 +0000 (10:39 +0900)]
winfo: add -desk test option for iconify_toggle

Change-Id: I8d1ff2c87b6d8b1123b84bb8ec73ba126a80dab5
Usage: winfo -desk iconify_toggle

2 years agoe_desk: add new API for getting iconified list 24/282824/1
Doyoun Kang [Wed, 12 Oct 2022 01:37:11 +0000 (10:37 +0900)]
e_desk: add new API for getting iconified list

E_API Eina_List * e_desk_visible_client_iconified_list_get(E_Desk *desk)

Change-Id: I86540290f030454be702813a927b4bb652706ad7

2 years agoe_comp_object: reference front buffer while render update is locked 67/282767/2
Changyeon Lee [Thu, 6 Oct 2022 11:06:46 +0000 (20:06 +0900)]
e_comp_object: reference front buffer while render update is locked

front buffer should be reference for preventing tearing buffer

Change-Id: I449802b815120a85dcf8d05f2d54a07f80099893

2 years agoe_comp_object: change e_comp_object_render_update_lock/unlock/lock_get to E_API 66/282766/2
Changyeon Lee [Thu, 6 Oct 2022 03:35:25 +0000 (12:35 +0900)]
e_comp_object: change e_comp_object_render_update_lock/unlock/lock_get to E_API

Change-Id: I85fe96e26c1257870a76c2ae40fc380b9def6a7b

2 years agoe_pointer: set e_pointer's object only when object is changed 64/282764/3
duna.oh [Tue, 11 Oct 2022 01:06:54 +0000 (10:06 +0900)]
e_pointer: set e_pointer's object only when object is changed

Change-Id: I050179a6450b831507b8176b5c4362cf1cfd691a

2 years agoadd E_POINTER_HOOK_SHOW/HIDE hooks 63/282763/1
duna.oh [Tue, 11 Oct 2022 01:00:10 +0000 (10:00 +0900)]
add E_POINTER_HOOK_SHOW/HIDE hooks

Change-Id: I919eac923e0e87e6d8daaf1e9c531d35b1d728b4

2 years agoe_comp_object: add log when render update lock enabled/disabled 31/282631/1
Changyeon Lee [Tue, 4 Oct 2022 03:03:25 +0000 (12:03 +0900)]
e_comp_object: add log when render update lock enabled/disabled

Change-Id: Ia5e77f3d4be851a2ac57df18f413ad3e5bb139ed

2 years agoe_hwc: add log when norender enabled/disabled 30/282630/1
Changyeon Lee [Tue, 4 Oct 2022 02:55:19 +0000 (11:55 +0900)]
e_hwc: add log when norender enabled/disabled

Change-Id: Ib2b39c367614810cfa40326a1c741611b4505519

2 years agoe_policy_wl: support interactive_move/resize_done event of tizen_policy 73/282273/1
Doyoun Kang [Sat, 24 Sep 2022 04:06:33 +0000 (13:06 +0900)]
e_policy_wl: support interactive_move/resize_done event of tizen_policy

Change-Id: Iff61f5cee2b2e214188780112587822a3264c7a5

2 years agoe_comp_wl: reference gbm_bo until imported tbm_surface is destroyed 00/282200/1 accepted/tizen/unified/20220929.080320
Changyeon Lee [Wed, 28 Sep 2022 03:51:40 +0000 (12:51 +0900)]
e_comp_wl: reference gbm_bo until imported tbm_surface is destroyed

imported tbm_surface can have invalid buffer handle
if buffer handle of gbm_bo is closed when gbm_bo is destroyed.

we do not destroy gbm_bo until imported tbm_surface is destroyed.

Change-Id: Ibbfbeb84aa8e6c17af6471e64571f7dd9f2423e5

2 years agoe_info_server: support tbm_surface which is not wayland-tbm resource in dump buffers 99/282199/1
Changyeon Lee [Wed, 28 Sep 2022 03:45:50 +0000 (12:45 +0900)]
e_info_server: support tbm_surface which is not wayland-tbm resource in dump buffers

Change-Id: Ib258db8a7b6339b2de8ef8a214fef485cccc5ee5

2 years agoe_comp_wl: move a code checking 'cur_mouse_action' value 94/281794/1
duna.oh [Wed, 21 Sep 2022 01:38:01 +0000 (10:38 +0900)]
e_comp_wl: move a code checking 'cur_mouse_action' value

If 'cur_mouse_action' is not null, E20 should not send events to clients.
So its value should be checked right before sending wayland events.
This patch allows the cursor to follow mouse movement when user is doing
mouse action such as resizing/moving windows).

Change-Id: Ia53521b1bd4d07400dba8280fad8cde3ea7cf9e4

2 years agoe_desk: add E_Desk_Zoom_Animating_Type information 88/281688/1 accepted/tizen/unified/20220921.170518
Doyoun Kang [Tue, 20 Sep 2022 09:06:52 +0000 (18:06 +0900)]
e_desk: add E_Desk_Zoom_Animating_Type information

There was a bug that the disable zoom was not working while running zoom animation
first time.

We add E_Desk_Zoom_Animating_Type information to check an animation type which is
running currently.
For this information, we can control enable/disable zoom animation efficiently.

Change-Id: Ibced55bd644759515679ae4894bc55f326613302

2 years agoe_desk: fix build warning 92/281592/1
Doyoun Kang [Tue, 20 Sep 2022 04:39:21 +0000 (13:39 +0900)]
e_desk: fix build warning

Change-Id: I1e91e5bc47ba02974a7abebc964340a61b54e2a4

2 years agosupport feature - iconify_all and restore_all in desk window 01/281401/1
Doyoun Kang [Fri, 16 Sep 2022 09:31:24 +0000 (18:31 +0900)]
support feature - iconify_all and restore_all in desk window

We support new feature to iconify/restore all visible windows in the desk.
For this we add new APIs as below.

  - void e_desk_visible_client_iconify_all(E_Desk *desk)
  : Iconify all visible windows in the desk except desktop type or user_skip_winlist set window.

  - void e_desk_visible_client_restore_all(E_Desk *desk)
  : Uniconify all visible windows which were iconified by iconify all windows request.

If a new window is activated after running iconify all windows, then the iconified window list is cleared.
So, there is no window which is uniconified when an user reqeust to restore window.

Change-Id: Iddaa8ee5f4680a580e6eade9060b946d144f476a

2 years agoe_policy_wl: doesn't send iconic state change event to unmapped window 25/281225/1 accepted/tizen/unified/20220915.173220 accepted/tizen/unified/20220916.022108 accepted/tizen/unified/20220916.022146
Doyoun Kang [Wed, 14 Sep 2022 08:40:48 +0000 (17:40 +0900)]
e_policy_wl: doesn't send iconic state change event to unmapped window

When the window's visibility is changed to fully-obscured, then e sends
an iconic state change event to the window and its children.
But there was a bug that the child window which was not mapped didn't render
because its internal state was iconic.

So, we change code not to send the iconic state change event to unmapped window.

Change-Id: Ib0c38dd419874af7cf1b8b321a724204d5260cc2

2 years agoe_client: Do not move a window to the center of zone 17/281217/1
Seunghun Lee [Wed, 14 Sep 2022 03:53:18 +0000 (12:53 +0900)]
e_client: Do not move a window to the center of zone

This patch is to fix that sub-surface gets placed wrong position which
is not the position a client wants.

It seems a legacy code of "desktop" window manager to move an
out-of-screen window to the center of zone.

For a desktop window manager, it makes sense because it's window
manager's responsibility to place window appropriately.
Plus, there is no way to move a window except user interacts with window
decoration, e.g, by dragging window title bar. Therefore, the window
manager should at least place movable windows to be visible to a user.

However, in Tizen, it's partly client's responsibility to move its
window, and there exists tizen_position wayland extension for it. So, we
should let clients move its window anywhere even if the position is out
of screen. Some windows like lockscreen already have worked that way
according to the comments which is removed by this patch.

Therefore, this legacy code doesn't make sense when it comes to window
manager for Tizen device environment.

Change-Id: Ia908cf892726a5a9022a1b3061355a0b42c6568a

2 years agorefactoring: use new API instead of exp_iconify.by_client 08/281208/1
Doyoun Kang [Wed, 14 Sep 2022 06:31:30 +0000 (15:31 +0900)]
refactoring: use new API instead of exp_iconify.by_client

Add new API for checking whether the window is iconified by client request or not.
- e_client_is_iconified_by_client

We replace code to use e_client_is_iconified_by_client() API instead of
ec->exp_iconify.by_client directly.

Change-Id: I823d3202d55dd8bc7ae220a016fafde544826487