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
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
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
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
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
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
duna.oh [Tue, 11 Oct 2022 01:00:10 +0000 (10:00 +0900)]
add E_POINTER_HOOK_SHOW/HIDE hooks
Change-Id: I919eac923e0e87e6d8daaf1e9c531d35b1d728b4
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
Changyeon Lee [Tue, 4 Oct 2022 02:55:19 +0000 (11:55 +0900)]
e_hwc: add log when norender enabled/disabled
Change-Id: Ib2b39c367614810cfa40326a1c741611b4505519
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
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
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
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
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
Doyoun Kang [Tue, 20 Sep 2022 04:39:21 +0000 (13:39 +0900)]
e_desk: fix build warning
Change-Id: I1e91e5bc47ba02974a7abebc964340a61b54e2a4
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
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
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
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
Junseok Kim [Wed, 17 Aug 2022 05:38:11 +0000 (14:38 +0900)]
e_policy_visibility: include tiles of internal EC when getting the below activity clients
There was an issue that below window receives pre-visibility although they're already obscured by internal ec.
Let there're 3 windows as below,
winA: partial sized, opaque
winB: full sized, opaque, internal
winC: partial sized, opaque
When the winA hides, the below uniconify logic runs to show below windows.
Expected situation is no windows are uniconified that winB is already shown,
but the winC gets pre-visibility because of the internal ec didn't included tile calculate.
For fix this problem, include tiles of the internal EC when calculate below activity clients.
Change-Id: I6bdd1b63b5ca243a8045c574ec7331a8e838e166
Changyeon Lee [Wed, 7 Sep 2022 11:09:19 +0000 (20:09 +0900)]
e_client: add e_client_transform_core_direct_render_set
if direct_render_set is enabled, use direct_render of e_map
Change-Id: I736fa5a1fc63848e7f8e140714f346d590483e69
Changyeon Lee [Wed, 7 Sep 2022 11:06:14 +0000 (20:06 +0900)]
e_map: add e_map_new_with_direct_render
Change-Id: I1ba642f4008ad5d9efc71c622824004ed6f6d38d
Changyeon Lee [Wed, 7 Sep 2022 04:00:49 +0000 (13:00 +0900)]
e_explicit_sync: fix wrong setting of explicit_sync_buffer_release
e_explicit_sync_surface_commit is called before e_comp_wl_surface_commit
after this patch
e8b6ec84e244604182a71a78776991ca3018c63e
explicit_sync_buffer_release should be set to pending buffer
Change-Id: If461fcf678290c7faebc0353d1cc6368d4e88eed
Doyoun Kang [Wed, 7 Sep 2022 06:30:26 +0000 (15:30 +0900)]
e_desk: remove e_map_util_object_move_sync_set in _e_desk_object_zoom
There was a bug that the enlightenment fell in infinite loop when the zoom was running in some case.
- Pre condition: zoom is enabled
- Reproduce: Keyboard is shown / hidden with moving effect
Then, the infinite loop is occured.
To resolve this, we remove code which call the e_map_util_object_move_sync_set in _e_desk_object_zoom.
Change-Id: I93ceabccfaa7ce0fdd39da31c4865e9a9181610d
Junkyeong Kim [Mon, 5 Sep 2022 02:17:00 +0000 (11:17 +0900)]
e_info_server: Erase unreachable code
Only EVAS_RENDER_BLEND and EVAS_RENDER_COPY are used.
Other enum types were deprecated so erase deprecated case.
Change-Id: I270bea7481c4133dba570b485b04e6f36c439c3c
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
Doyoun Kang [Fri, 2 Sep 2022 09:57:32 +0000 (18:57 +0900)]
e_comp_object: Delay move when move_after_resize is true
This patch tries to resolve the problem that sub-surface can't be moved
at the time of sub-surface launch.
The problem is that, in _e_comp_intercept_move(), given (x,y) position
can be lost if move_after_resize flag is true, and it eventually makes
the comp_object not being moved to this position permanently.
The scenario from which the problem was discovered is as follow.
Creation of surface -> Creation of xdg_toplevel -> Apply maximize
policy -> Resize surface -> move_after_resize = true -> Creation of
subsurface -> wl_subsurface.set_position() -> wl_surface.commit()
-> evas_object_move() -> _e_comp_intercept_move() -> (*) if
(cw->ec->move_after_resize) return -> Buffer size changes -> Unset
move_after_resize
Change-Id: Ibffa65dcb009283071aee6afa6e9f461f502162d
Seunghun Lee [Wed, 24 Aug 2022 09:47:33 +0000 (18:47 +0900)]
viewport: Apply viewport when parent gets visible
Since calculating viewport is dependent on parent's buffer, viewport
should be applied when parent object gets visible.
Change-Id: I36689dd0e7f402154ab317e317b8a540524ed30a
Seunghun Lee [Wed, 24 Aug 2022 08:14:45 +0000 (17:14 +0900)]
viewport: Apply viewport when parent resized
This patch is to resolve the issue that geometry of window applied by
viewport couldn't be updated when the size of its parent changed.
Updating geometry when parent gets resized makes sense because
calculating geometry is dependent on parent size.
Change-Id: I621ae16ca0eeadd381207119746d12249ffd92ee
Doyoun Kang [Tue, 30 Aug 2022 09:00:33 +0000 (18:00 +0900)]
e_client: modify code to handle a client_type
Change-Id: If6a7a2a243d5b918f88cdfda0dc3960834436482
Doyoun Kang [Mon, 29 Aug 2022 09:51:45 +0000 (18:51 +0900)]
e_client: add E_Iconified_Type
New features for handling the iconic window's iconified type.
- E_Iconified_Type enumeration
- E_API void e_client_iconified_type_set(E_Client *ec, E_Iconified_Type type);
- E_API E_Iconified_Type e_client_iconified_type_get(E_Client *ec);
Change-Id: I65204283ad2704addce2b3628227cf6aa679ca29
Doyoun Kang [Sun, 28 Aug 2022 23:11:18 +0000 (08:11 +0900)]
e_policy_wl: support desktop type window
Change-Id: Ib77bfd12ba4268a7f102779ec0fba8597694e437
Changyeon Lee [Wed, 24 Aug 2022 09:14:57 +0000 (18:14 +0900)]
e_hwc_window: override client type when render update lock is set
if render update lock is set, buffer of client should not be updated
in display.
but hwc is designed client should update latest buffer in display.
Change-Id: I4550602f910db3486590bfa2ea53551e43011280
Changyeon Lee [Tue, 16 Aug 2022 11:05:57 +0000 (20:05 +0900)]
e_comp_object: introduce e_comp_object_render_update_lock/unlock
if e_comp_object_render_update_lock is called, enlightenment does not
update evas image object in job callback of compositing(_e_comp_cb_update)
until render_update_lock count is decreased zero.
this api does not prevent updating evas image object when
e_comp_object_dirty is directly called.
Change-Id: Ic0cec29a9c43ed9659b14e5bac88e276e66d5642
duna.oh [Fri, 26 Aug 2022 06:41:41 +0000 (15:41 +0900)]
e_devicemgr: modify the order of DEVICE_DEL event handler
e_devicemgr and e_comp_screen, both handles the DEVICE_DEL event.
When e_devicemgr's handler is called, it removes the device
from the device list and set last_device_ptr NULL.
Since e_comp_screen is called afterward, the device is already
removed.
This patch reorders the event handler.
Change-Id: I479657db2600a6fd490cc6c7ff386914990baf49
duna.oh [Mon, 27 Jun 2022 02:54:57 +0000 (11:54 +0900)]
devicemgr: fix the bug that generating pointer should update 'mouse' state, not 'touch'.
Change-Id: Ia8fe207e6646b2732797f49a56b7be0a761d4b4e
duna.oh [Wed, 24 Aug 2022 10:12:59 +0000 (19:12 +0900)]
e_info: add input_log_enable option
set input_log_enable on/off
0: off, 1: off (default: on)
Change-Id: I4f5ee193508abd273af0bfc17fca2e72a6eedf3e
Doyoun Kang [Mon, 22 Aug 2022 09:23:05 +0000 (18:23 +0900)]
e_comp_wl: clean up code
We just changed a name of internal values to w, h from x, y in _e_comp_wl_evas_cb_resize.
(no logic change)
Change-Id: Ied861f3035d34f2b83a4a05bfb79858d33086953
Doyoun Kang [Mon, 22 Aug 2022 09:16:37 +0000 (18:16 +0900)]
refactor code for maximizing window
Change-Id: I8436542def3bf74ef2231305b5e6eb85d5afe4c8
Doyoun Kang [Thu, 18 Aug 2022 06:42:05 +0000 (15:42 +0900)]
e_client: remove "fullscreen" evas_object_smart_callback in _e_client_maximize
The "fullscreen" callback should be called only e_client_fullscreen_set.
If we need a callback later, then we can add evas_object_smart_callback with another name
such as "maximize_fullscreen".
Change-Id: I03074f3463775418cc46798c2bf35e7dcae55afb
Doyoun Kang [Thu, 18 Aug 2022 06:39:38 +0000 (15:39 +0900)]
e_client: refactor _e_client_maximize function
change code to use e_client_frame_geometry_set() instead of evas_object_geometry_set()
Change-Id: I74d156fd409c84080843dcf52ee2f092a619e01b
Junkyeong Kim [Thu, 11 Aug 2022 08:10:00 +0000 (17:10 +0900)]
e_output: set video_to_primary to true in screenmirroring capture
if tdm stream capture is not supported,
set video_to_primary true to get video image for screenmirroring capture.
Change-Id: I714aeab929c9a79067fcc46a4fcd7849cc5e1cdc
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
Junseok Kim [Tue, 31 May 2022 02:48:36 +0000 (11:48 +0900)]
e_dnd, e_slot: fix misuse of hash function
e_slot.c: _e_slot_g->hash_slot_objs misuses eina_hash_pointer_new but actual key was int.
e_dnd: _drop_handlers_responsives misuses eina_hash_int32_new but actual key was uintptr_t.
due to pointer size and int size mismatch in 64bit system, these codes can makes some problem.
this patch need for prevent future problem.
please refer:
c20f36275df9536520509fe52d9e6faeeaffa67d
Change-Id: I04ad1b28da2fa5cbeff3cb7c3fdcde037f013c9a
Doyoun Kang [Tue, 2 Aug 2022 01:25:03 +0000 (10:25 +0900)]
e_xdg_shell: modify code to remove oldest configure resource
There is a possibility that the size of the configure resource is increased continuously
if an app doesn't send configure_ack reqeust after it get the configure event.
To prevent continuous resource size increase, we remove the oldest configure resource
from the waiting configure_ack list if the number of list exceeds a specific number.
Change-Id: Ia882cf5ea5be06574822ff4b3fdb627af6db70ab
Doyoun Kang [Wed, 27 Jul 2022 00:27:30 +0000 (09:27 +0900)]
e_process: fix bug not changing action to no visible windows
There was a bug that the action of process was not changed to E_PROCESS_ACT_NO_VISIBLE_WINDOWS
when all windows of the process were hidden.
This resolve this problem.
Change-Id: I488ce2e5cf9b5fe3fe6c702dd2f490243559328f
Changyeon Lee [Wed, 27 Jul 2022 03:00:48 +0000 (12:00 +0900)]
e_hwc_window_queue: set destroy notify only when destroy listener is added
for checking whether destroy listener is added,
hwc_window_queue checks whether destroy notify is set.
destroy notify should be set only when destroy listener is added.
Change-Id: Ifb9b71bd9b926f1432c816e8f6eb3e97dfd17435
Changyeon Lee [Tue, 26 Jul 2022 10:53:50 +0000 (19:53 +0900)]
e_comp_wl_tizen_hwc: send tizen_hwc_commit_feedback in hwc planes policy
tizen_hwc_commit_feedback cannot be supported in hwc planes policy
becasue module can update tdm_layer and hwc does not aware it.
this patch send tizen_hwc_commit_feedback and print not supported log
because client wait tizen_hwc_commit_feedback.
Change-Id: I41004c4fb7607182154322abd2942f6045c58a17
Changyeon Lee [Tue, 26 Jul 2022 08:38:25 +0000 (17:38 +0900)]
e_hwc_window_queue: Add missing remove destroy listener in destroy callback
fix remove destroy listener after buffer is freed
Change-Id: Ia029c4491fd32f04e9a98a55687d8476555c0984
Changyeon Lee [Fri, 15 Jul 2022 08:11:06 +0000 (17:11 +0900)]
e_hwc_window: clean up indentation
Change-Id: I077e095aa59922840d0d85b47f3de44452f3d0f2
Doyoun Kang [Thu, 21 Jul 2022 05:41:07 +0000 (14:41 +0900)]
e_client: fix code for resizing floating mode window
There was a bug that the floating mode window resized invalid when the target was rotated.
This patch resolve this problem.
Change-Id: I39b4a1f4c94e8a782a7117c7c26075aa1a25d1ec
Junkyeong Kim [Thu, 21 Jul 2022 02:37:32 +0000 (11:37 +0900)]
e_info_client: erase unused variable
Change-Id: I2e4a60c39818d7c022fe3ebe073cbc38231e512a
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
Doyoun Kang [Wed, 20 Jul 2022 05:02:21 +0000 (14:02 +0900)]
e_client: add e_client_resize_object_create_cb function
This supports e's module to make a customized resize object.
If the E_Client_Resize_Object_Create_Cb is set by e's module, then it's up to the module
to make a resize object. In this case, e doesn't make a default resize object.
Change-Id: I79612a2e4e1e2130a5c6be2cd2178a92cba5b1b7
Doyoun Kang [Tue, 19 Jul 2022 07:30:16 +0000 (16:30 +0900)]
e_config/e_client: support an image object for the resize object
We added code to be able to change the resize object to an image as well as a rectangle.
If an user wants to change the resize object to the customized image, then user has to
set e_config's value as below.
- resize_object.type : 1 (0:rectangle, 1:image)
- resize_object.image_path : image path
FYI, the default resize object is a rectangle. And if the image object is invalid,
then enlightenment makes a resize object to a default rectangle.
Change-Id: Ic5cd01684dea11323b55f639a93850c30c6f2b69
Changyeon Lee [Tue, 19 Jul 2022 11:28:40 +0000 (20:28 +0900)]
Revert "e_comp_object: fix dangling pointer of content object"
This reverts commit
3c67afdbf5ece121e974e140186d584deba4761c.
Change-Id: I6fda62a65f74842278df54540959213de4b507f5
Changyeon Lee [Fri, 15 Jul 2022 04:53:25 +0000 (13:53 +0900)]
e_hwc_windows: fix leak of E_Hwc_Windows_Comp_Info
there is leak of E_Hwc_Windows_Comp_Info when tbm_surface is null
or tbm_surface_internal_add/set_user_data are failed.
Change-Id: If8236a1ab70a064f34ba5bc9c39dd6c3998d5889
Changyeon Lee [Tue, 12 Jul 2022 07:38:18 +0000 (16:38 +0900)]
e_comp_wl: fix missing e_explicit_sync_commit in case of remote surface
_e_comp_wl_surface_state_commit is not called in case of remote surface
calling e_explicit_sync_commit is moved to _e_comp_wl_surface_cb_commit.
Change-Id: I933b252d306eea75d83c482ceca466cc81885c62
Changyeon Lee [Mon, 11 Jul 2022 10:19:11 +0000 (19:19 +0900)]
e_pointer: fix dangling pointer of evas object
Change-Id: Ibde34fa391f9e6014532fdaac107370542a0e6a5
Changyeon Lee [Tue, 12 Jul 2022 01:42:10 +0000 (10:42 +0900)]
e_comp_object: fix dangling pointer of content object
if launchscreen client is changed, new launchscreen client
can have dangling pointer of content object.
1. old launchscreen client set content object(cw->obj)
2. splash refernece content object(splash->obj)
3. launchscreen client is changed,
new launchscreen client set content object(cw->obj)
4. old launchscreen client is destroyed, content object is deleted
evas_object_del(cw->obj)
5. in splash off, splash unreference content object(splash->obj)
6. content object is deleted
6. new launchscreen client has dangling pointer
this patch add calling e_comp_object_content_usnet when
launchscreen client is changed.
e_comp_object_content_set/unset use evas_object_ref/unref and
splash use evas_object_del for preventing call twice evas_object_del.
Change-Id: I826d1978ddc4dee764ff830bb941dbdc93ad3ca6
Junkyeong Kim [Fri, 8 Jul 2022 05:11:20 +0000 (14:11 +0900)]
e_info: add mouse_accel option
make mouse acceleration set/unset option.
0: off, 1: on (default: on)
Change-Id: I2c7503e0b5223dacc5f90e18672ee4908e1955ef
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
Junkyeong Kim [Thu, 23 Jun 2022 12:05:59 +0000 (21:05 +0900)]
e_comp_wl_screenshooter: support tizen_screenshooter interface version 3
support tizen_screeenshooter interface shoot request and use done event.
Change-Id: I94141f12bfb5e4af93b853d402c248251c95de2f
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
Doyoun Kang [Wed, 22 Jun 2022 07:00:20 +0000 (16:00 +0900)]
resize: fix bug for aspect_ratio resize
There was a bug that the aspect_ratio didn't work correctly when the aspect_ratio
was set while creating partial window.
So we change code to set the aspect in e_client_resize_begin().
Change-Id: I8394185c324d0f518ec06950e2b585a9ac20e90b
Doyoun Kang [Tue, 21 Jun 2022 10:50:24 +0000 (19:50 +0900)]
e_xdg_shell_v6: modify code to use valid data type for commit hook
Change-Id: I3faa2b05ec61a748293a56ca4d7838f51ca2cfb0
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
Junseok Kim [Tue, 14 Jun 2022 23:36:13 +0000 (08:36 +0900)]
e_xdg_shell_v6: change commit handler event to surface commit hook
Change the target event of the surface commit handler from E_EVENT_CLIENT_BUFFER_CHANGE to E_COMP_WL_HOOK_CLIENT_SURFACE_COMMIT.
Previously, because more weight was placed on the buffer, even when the surface commit came,
the xdg surface information was processed only when the buffer attach had occurred before.
However, according to the spec, it is supposed to be processed when a commit comes.
To match this, the target event has been changed to hook that E_COMP_WL_HOOK_CLIENT_SURFACE_COMMIT, which is generated when a commit comes.
Change-Id: I515802229fabfa8ba3a84c70b457e16f1b767ed2
Junseok Kim [Tue, 14 Jun 2022 23:29:36 +0000 (08:29 +0900)]
e_comp_wl: added CLIENT_SURFACE_COMMIT hook
Change-Id: Ib6f96d51bf7caf00df32f2e2d47c45ef7e3e19e4
Changyeon Lee [Fri, 10 Jun 2022 05:39:54 +0000 (14:39 +0900)]
e_hwc_windows: fix accessing e_hwc_window after it is freed
e_hwc_window can be freed in _e_hwc_windows_changes_update
in case of queue_buffer is released in e_hwc_window_buffer_fetch.
for preventing e_hwc_window is freed, e_hwc_window is referenced
when it is updated.
Change-Id: I0963c9ebedc0b64b7b03b75b402ece31797a1e9f
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 [Wed, 15 Jun 2022 05:56:25 +0000 (14:56 +0900)]
Revert "e_client: remove edge value while calculating visibility"
This reverts commit
30ddbd419145f3f1c4cec1f4021ea1a7b56a6de5.
Change-Id: I147a04838130b773fed8a686c0752b65976c5c36
duna.oh [Fri, 10 Jun 2022 07:19:52 +0000 (16:19 +0900)]
e_input: add null check for invalid E_Output object
Change-Id: I374faa3534d926858aed5548bbb820758a4e0b9d
duna.oh [Fri, 10 Jun 2022 06:44:29 +0000 (15:44 +0900)]
Revert "e_devicemgr: clean up tizen_input_device objects when a client destroys"
This reverts commit
2991f7d98fe8720891584c0d2726bd7a0bf9cde0.
Change-Id: I37198e7ae63a56dcc6bee3e3bbbe1f39b57bd818
duna.oh [Tue, 26 Apr 2022 06:32:56 +0000 (15:32 +0900)]
e_devicemgr: clean up tizen_input_device objects when a client destroys
There is a bug that a client does not send destroy requests,
then tizen_input_device objects would stay undeleted.
This commit fixes memory leak of tizen_input_device objs.
Change-Id: I96deae1f41a63dcc7c3525c26a17613d86bce408
duna.oh [Tue, 26 Apr 2022 06:42:40 +0000 (15:42 +0900)]
e_info: 'resource_id' should be stored as uint32_t
Change-Id: If3494a3b0958fc2a7a7b0218b217ce0587f1c778
Junkyeong Kim [Wed, 8 Jun 2022 09:10:38 +0000 (18:10 +0900)]
e_eom: set ref of ec when request set window
execute unref when ec's client is destoyed.
Change-Id: Id898cbf7def46fc39a4d03c10df1b9620e677521
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
Junseok Kim [Tue, 31 May 2022 07:33:43 +0000 (16:33 +0900)]
e_comp_wl_data: resize e_drag before drag client be show
There was a bug that drag client resized to 24x24.
It is timing issue and could reproduce with repeat drag quickly.
for fix this bug, resize the drag object before start drag.
Change-Id: I745cf725dde17974f296dee34ac2e9a84c060a87
Junseok Kim [Tue, 31 May 2022 07:31:55 +0000 (16:31 +0900)]
e_dnd: added size validation of e_drag
Change-Id: I0bc9808024507f34f4e5e5fa1499885ca275b674
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: If246a690e868e5ee8c3033cc4288e2611ed96c50
Junkyeong, Kim [Fri, 3 Jun 2022 06:21:43 +0000 (15:21 +0900)]
e_pointer: set e_pointer init coordinate to center
tizen concept - pointer's init position is a center of output.
it's implemented in e_input_evdev.c _device_calibration_set.
but e_pointer's init coordinate is 0.
so e_pointer's init coordinate also have to be set like e_input_evdev.
Change-Id: Iaeeb2e79c9504c2ab1cba3043be604c61dabc7e6
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Junseok Kim [Thu, 2 Jun 2022 07:50:27 +0000 (16:50 +0900)]
e_comp_wl_data: send drop when drop will be performed
There was a misimplementation of protocol that drop event sended to offer when drop will be cancelled.
When drop cancelled, drop source will be destroyed by client (depending on the implementation of the client).
But as the misimplementation of enlightenment, offer client always receive drop event and couldn't recognize the source receive cancelled request.
So that, offer client could continue the Drag and drop sequence and the client can be crashed by violation of the DnD protocol.
For fix this situation, correct the server implementation to send drop event when the drop will be performed.
Change-Id: I96b13c13961e4a0bc1faf0df5e4d7655c0186b1c
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
Junseok Kim [Thu, 26 May 2022 07:37:00 +0000 (16:37 +0900)]
e_comp_wl_data: added NULL check of offer->source
Change-Id: I150a68b7fd801ecf04af172b6ed966e42b3999af
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
Junseok Kim [Thu, 26 May 2022 07:16:44 +0000 (16:16 +0900)]
e_client: change geometry_set method when resize end handle
there was a bug that window flickering sometimes when doing resize with pointer (using resize object).
when the resize ends, then server changing window's geometry using evas_object_geometry_set.
but actually evas_object_geometry_set doing evas_object_move -> evas_object_resize, and this processes makes flickering.
to fix this problem, use e_client_frame_geometry_set to doing move after resize once.
Change-Id: If5a82277affa2e0298a412b18d048624495f32df
Junkyeong, Kim [Thu, 26 May 2022 05:34:40 +0000 (14:34 +0900)]
e_input: add e_input_evdev_mouse_accel_enable api
input system uses pointer acceleration by default.
so make an api to get raw pointer data without acceleration.
Change-Id: Ibd6e30b8ba342b448c6d17f7eb2f8dd5245fd2dd
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Junkyeong, Kim [Thu, 26 May 2022 06:51:57 +0000 (15:51 +0900)]
e_info_server_input: add e_info_server_input_mouse_accel_set api
can set pointer acceleration on, off of virtual input device.
acceleration on : 1, off : 0 (default : on)
Change-Id: I458c71a5f3f7d15b48f36399f1c0b35c6e0f1b5f
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Junseok Kim [Thu, 19 May 2022 09:28:25 +0000 (18:28 +0900)]
e_comp_wl_screenshooter: added destroy request callback
Change-Id: I41f5b8b58b0277c3086a5f7d302acb1fe7a55961
Doyoun Kang [Wed, 25 May 2022 01:44:43 +0000 (10:44 +0900)]
e_policy_wl: fix resource leak
Change-Id: Ic9fddde8cb512dbe0a5e64348ff605a4315d320c
Doyoun Kang [Wed, 18 May 2022 07:48:19 +0000 (16:48 +0900)]
modify code to change geometry synchronously
When a window requested to change its geometry, e changed its position first and then
changed its size.
So, we modify code that the window's position and size can be changed at once.
Change-Id: Iac8eedfe3611fa0e942c3ac5718f7b96fe26eb59
Junseok Kim [Tue, 19 Apr 2022 02:18:52 +0000 (11:18 +0900)]
e_config: added customize configure for resize_object
this patch makes to customize resize_object by configure.
customize means flag for use customize resize_object.
0: use system default resize_object.
1: use customized resize_object as configured.
each r/g/b/a means Red, Green, Blue, Alpha value of resize_object.
Change-Id: I95426e322114566b194c09d5116703da6f00890d
Junseok Kim [Fri, 29 Apr 2022 07:39:02 +0000 (16:39 +0900)]
e_client: added resize aspect ratio
added values for resize aspect ratio and adjust to resize handle
Change-Id: I88f218cb4ebb01c7b5c1d5f785560abcccea92cb
Signed-off-by: Junseok Kim <juns.kim@samsung.com>
Junseok Kim [Fri, 29 Apr 2022 07:39:51 +0000 (16:39 +0900)]
e_policy_wl: added aux hint for resize aspect
Change-Id: Iaddd628546bf1b7f2159322a1b142d8ed4879ec1
Signed-off-by: Junseok Kim <juns.kim@samsung.com>
Junseok Kim [Tue, 19 Apr 2022 02:19:24 +0000 (11:19 +0900)]
e_client: use configured color values to make resize object
Change-Id: I0a42b98509a2bb95aea8faac9843a284afeba49b
Junkyeong, Kim [Mon, 4 Apr 2022 08:00:03 +0000 (17:00 +0900)]
e_video_hwc: check sw fallback flag while video playing
Change-Id: I65807444d4cb62b4eebf0fe1e967059b84388a6d
Signed-off-by: Junkyeong, Kim <jk0430.kim@samsung.com>
Junseok Kim [Wed, 11 May 2022 12:40:10 +0000 (21:40 +0900)]
e_comp_object: Fixed an intermittent drag_window hiding issue
fix intermittent drag_window hiding issue during repeated drag and drop.
And fix some words of log.
Change-Id: I55198ebc618d1a99d203bba5ba133a9686283b41
Junseok Kim [Fri, 13 May 2022 03:34:49 +0000 (12:34 +0900)]
e_policy_wl: added ref/unref of E_Client when tzsh_service add/del
There was a use after free bug to access freed e_client.
When the E_Client deleted before the tzsh_service destroyed by request from client,
It could occure the "Use After Free" issue to the E_Client object.
For fix this problem, added e_object_ref/unref of E_Client to tzsh_service add and del
Change-Id: I1eecb42d5afa700c95f020336dc73c488449cbc5
Doyoun Kang [Thu, 12 May 2022 03:22:10 +0000 (12:22 +0900)]
e_service_quickpanel: fix build warning
Change-Id: Ie1244077cf604803650cd5539676e859f12583a6
Doyoun Kang [Thu, 12 May 2022 02:28:42 +0000 (11:28 +0900)]
e_comp_object/e_xdg_shell: fix resizing issue
There was a bug that the window size was rollback as below case.
1. Do interactive resize to (w1 x h1)
2. App change it's window size to (w2 x h2)
3. Do interactive move
<== Window's size is changed to (w1 x h1)
To fix this, we add code that e send a configure event if the window size is changed.
Change-Id: I59fe88bcb7cbc1e8272a084d6729e9c4176be701
Doyoun Kang [Mon, 9 May 2022 05:42:31 +0000 (14:42 +0900)]
winfo: add quickpanel control option
winfo -quickpanel [operation(0~3)] {window id}
- operation : 0(hide), 1(show), 2(scroll lock), 3(scroll unlock)
- window id : quickpanel service window id.
if 0 or invalid id, then use default quickpanel
Change-Id: I8016a2d3d41ea7a8efb2bf4a0ca9acc5ba61a318
Doyoun Kang [Wed, 4 May 2022 00:11:27 +0000 (09:11 +0900)]
e_client: remove edge value while calculating visibility
Change-Id: I97ed8e842617d385dbfd4baab077d9c0ad9468e5
Junseok Kim [Wed, 27 Apr 2022 06:49:39 +0000 (15:49 +0900)]
e_comp_object: block show of drag_client if the DnD already finished
Change-Id: If68bb66a8764efd650e94a235a0a90e70bf451af
Signed-off-by: Junseok Kim <juns.kim@samsung.com>
Junseok Kim [Thu, 28 Apr 2022 09:37:37 +0000 (18:37 +0900)]
e_comp_wl_data: makes drag_client can reusable
the drag_client (drag and drop icon that under pointer) object can re-use by client.
but the E_Client of icon_resource couldn't re-assigned to drag_client.
this patch fixes it.
Change-Id: If51573ab85c1af226e7328377991d9c43965d3e9
Signed-off-by: Junseok Kim <juns.kim@samsung.com>
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