Junkyeong Kim [Fri, 14 Apr 2023 09:07:48 +0000 (18:07 +0900)]
e_comp_wl: add _e_comp_wl_region_area_check function
if requested region size(x+w or y+h) is over origin base region area,
set base region area to requested size.
Change-Id: I1d76b2e32330b1a4917c1172d0a57fc49a665521
Doyoun Kang [Thu, 13 Apr 2023 11:22:45 +0000 (20:22 +0900)]
e_client/e_policy: subdivide the shadow size of decorator
We subdivided the shadow size of decorator into top, bottom, left, right.
Change-Id: Iabfa65039407ef8b9cfa23370a62497f59194db2
Doyoun Kang [Thu, 13 Apr 2023 09:55:47 +0000 (18:55 +0900)]
e_policy_wl: set desk_iconify_skip for cursor window
We add code that the cursor window is not iconified by desk_iconify.
Change-Id: Idd4f03b3fc96515b65679682b027966999ab4bff
Junseok Kim [Tue, 11 Apr 2023 06:31:45 +0000 (15:31 +0900)]
e_info: print all ECs list on topwins operation
There was no way to present invisible ECs list because of past topwins prints just evas object in e_comp->evas.
So, print all ECs on topwins operation.
Change-Id: I6f5170d26d2a4e1ae9f5e5760bd369eced5f919a
Doyoun Kang [Thu, 13 Apr 2023 02:32:01 +0000 (11:32 +0900)]
e_policy: set desk_iconify_skip for service windows
We add code that the service windows (such as home screen, quickpanel,
lock screen, etc) not to be iconified by desk_iconify.
Change-Id: I500af48b147c758b11d7ba62fd89fdd69ad1efa1
Doyoun Kang [Tue, 11 Apr 2023 06:56:54 +0000 (15:56 +0900)]
e_policy_wl: change a layout geometry considering the shadow size
Change-Id: Id50ebd0086c36b381d7dfcbf8a7cd018cc38dda2
Doyoun Kang [Mon, 10 Apr 2023 07:30:53 +0000 (16:30 +0900)]
e_client/e_policy_wl: add the shadow size for decoration
We add a shadow size for the client side decoration.
- E_Client struction : add a shadow value
- E_Policy_Hint_Type : add a E_POLICY_HINT_DECORATION_SIZE_SHADOW
Change-Id: I2044aba597dfb43408282574b6133dfcf650dd5c
Doyoun Kang [Mon, 10 Apr 2023 06:46:50 +0000 (15:46 +0900)]
e_policy_wl: change aux hint name for decoration properties
We changed aux hint name related with client size decoration as below.
* E_Policy_Hint_Type
- E_POLICY_HINT_RESIZE_HEADER_HEIGHT -> E_POLICY_HINT_DECORATION_SIZE_HEADER
- E_POLICY_HINT_RESIZE_FOOTER_HEIGHT -> E_POLICY_HINT_DECORATION_SIZE_FOOTER
* hint_name
- wm.policy.win.resize.header_height -> wm.policy.win.decoration.size.header
- wm.policy.win.resize.footer_height -> wm.policy.win.decoration.size.footer
Change-Id: Iceb68af9d9fd6e116a779b96e4a11845e8b106b3
Junseok Kim [Tue, 4 Apr 2023 04:07:31 +0000 (13:07 +0900)]
e_desk: use transform_core to desk zoom
Use transform_core API to desk zoom instead of transform_core_update_with_desk_zoom function.
There was a bug that video window blinking that enabled both of transform and desk zoom.
When the video window changed their size, the transform_core_update called by EVAS_CALLBACK_RESIZE before idle time.
And then, after idle time, following called the transform_core_update_with_desk_zoom by E_EVENT_CLIENT_RESIZE.
In this situation, it makese the window blinking because their're has different coordinates and zoom value of evas_map.
For fix this issue, use transform_core API to doing desk zoom to zoom at same time with other transform.
Change-Id: Ie2adf7d4af1d6239fb04d732ea3e51d6fc2ecee5
Junseok Kim [Tue, 4 Apr 2023 03:54:27 +0000 (12:54 +0900)]
e_util_transform: Add e_util_transform_zoom
Added e_util_transform_zoom for contain zoom information for using zoom API of evas_map.
Change-Id: I03b4d2ae0c8e0344c467157db592e963e437748a
Jihoon Kim [Tue, 4 Apr 2023 09:50:28 +0000 (18:50 +0900)]
e_input_device: set input thread name
Change-Id: I411af19f820f41fda3b856ac561a6382ec29b05c
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
Doyoun Kang [Mon, 3 Apr 2023 02:55:28 +0000 (11:55 +0900)]
e_client: use rand_r() instead of rand()
we changed code to use rand_r instead of rand for thread safety
Change-Id: I0c0b35d1a42ace33428df7f11e3eebf4dc133d10
Junseok Kim [Fri, 31 Mar 2023 07:02:18 +0000 (16:02 +0900)]
e_comp_wl: remove selection target when ec going to delete
Change-Id: I91f6ef96f004b016214916b90b10bf18abfa9fd7
Junseok Kim [Thu, 30 Mar 2023 10:08:21 +0000 (19:08 +0900)]
e_comp_wl_data: check focused resource is dnd icon resource
Check focused resource is same with DnD icon resource on start_drag request callback.
There was a bug that DnD icon window sometimes didn't appear.
It caused by focus set to the DnD icon window before receive start_drag request by timing issue.
Then the source window lose their focus, finally start_drag request fail.
For fix this issue, check the icon_resource is focused and continue the callback.
Change-Id: Ifb9c64df0123102f7cb925ce19c9902111318654
Junseok Kim [Thu, 30 Mar 2023 06:31:41 +0000 (15:31 +0900)]
e_comp_wl_data: set visible value of the drag_client to False when the drag finished.
Set visible value of the drag client to 0 when the drop finished.
There're many log about show blocked of the drag client after the drop
finished.
It's caused by the visible value of the drag client is 1 even though the
drag client didn't draw their surface after the drop finished.
To solve this problem, we set the visible value of the drag client to 0
when the drop finished.
Change-Id: I6994de1e5f11a3d1e1d2922948f43f10fd8d1753
duna.oh [Thu, 30 Mar 2023 06:08:00 +0000 (15:08 +0900)]
e_comp_wl: fix cursor flickering when mouse_out occurs
Showing and hiding a cursor is request-triggered operation by clients.
Hiding a cursor when mouse_out occurs is unnecessary server-side operation
and causes cursor flickering when mouse moves between apps.
Scenarios:
1. When mouse moves between cursor-supported apps (App 1 & App 2), App 2
sets its cursor and E20 hides an old cursor and shows a new one.
2 When mouse moves from a cursor-supported app to a cursor-unsupported app,
the cursor-unsupported app sets its cursor as null and E20 hides a cursor.
Change-Id: I3e15fd821064aa819f93eaed664c7d700a46b05a
Junseok Kim [Wed, 29 Mar 2023 07:32:54 +0000 (16:32 +0900)]
e_desk: remove strdup for prevent memory leak
remove strdup call for prevent memory leak on wtz_splitscreen_region callback
and remove useless checker of the hook result
Change-Id: I91884c140eba316664cd7cf559f719c850974354
Junseok Kim [Wed, 29 Mar 2023 07:32:05 +0000 (16:32 +0900)]
e_client: remove null check for code readerability
Change-Id: Icea24fceca635475e33f264ddea40844e3b815dc
SooChan Lim [Wed, 29 Mar 2023 06:55:46 +0000 (15:55 +0900)]
e_desk_area: rename desk_group into desk_area
Change-Id: I7b3fc33173435e3c27584c0c88e28b04d75407b1
Junseok Kim [Thu, 23 Mar 2023 12:12:30 +0000 (21:12 +0900)]
e_client: Use desk_group geometry for maximize reference geometry if desk group enabled
Change-Id: If4f9c847c19a9151885510df05c6739331b9c5c5
Junseok Kim [Thu, 23 Mar 2023 02:01:29 +0000 (11:01 +0900)]
e_desk: Duplicate appid string for send hook function
Change-Id: I6e9a489bcb37e9173f2e71370b24f346bc0d434a
NOTE:: the appid MUST be freed on hook function
Junseok Kim [Wed, 22 Mar 2023 10:57:04 +0000 (19:57 +0900)]
e_desk_group: Add API for resizing method of window in desk_group
Add API for choose resizing method of window in desk group.
when the e_desk_group_transform_enable_set receives True value,
the window in desk group will be transformed to fit to geometry of desk group same as before.
when disabled, then the window will be resized their client size to fit to geometry of desk group.
NOTE: current maximize size of the window is fit to desk.
e_client_maximized_geometry_set should be called after transform disable to set maximize size as geometry of desk_group.
Change-Id: I4175fe01cb1a4cca6dca5a296a8c27ad3a606ec1
Junseok Kim [Tue, 21 Mar 2023 11:21:07 +0000 (20:21 +0900)]
e_desk: check edg->name is available when generate splitscreen region
Change-Id: I9cf1fa54c73914069e6e1c8e3bffab6adc6493de
SooChan Lim [Tue, 21 Mar 2023 08:08:14 +0000 (17:08 +0900)]
follow the changed protocol
This is the implementation for the changed wtz_screen interface.
Change-Id: Ifa4c356dbf7ad1c9e16fb299c2d3e9256da544b5
Junseok Kim [Fri, 17 Mar 2023 03:13:29 +0000 (12:13 +0900)]
e_zone: remove error post when the splitscreen didn't supported
Change-Id: I595bc400ebfc9db99e91b579f796ba042dd70f9f
Junseok Kim [Fri, 17 Mar 2023 02:47:05 +0000 (11:47 +0900)]
e_desk: Add argument to copy appid to hook function
Change-Id: I51ea559114ce15fd0215503449e22205ff6049da
Junseok Kim [Fri, 17 Mar 2023 01:52:30 +0000 (10:52 +0900)]
e_desk: create using id 0 instead of id of wtz_splitscreen
Change-Id: Icc3db894b032152ca4cf82b4dfe3050d0e60b57b
Junseok Kim [Fri, 17 Mar 2023 01:49:10 +0000 (10:49 +0900)]
e_zone: fix typo
Change-Id: Id5ffc8f30341949b4fbad376629a2cef94683619
Junseok Kim [Tue, 27 Dec 2022 06:30:25 +0000 (15:30 +0900)]
e_appinfo: change e_appinfo_pid_get to E_API
Change-Id: I29cb1661ce84b905906f0969af14d21327f696c3
SooChan Lim [Thu, 9 Mar 2023 09:23:22 +0000 (18:23 +0900)]
implement the wtz_shell protocol
This is the first implementation for the wtz_shell and wtz_surface interface.
Change-Id: I37ddcb2d4cacbc4e557b23d64b9f0bb249668f9f
SooChan Lim [Tue, 7 Mar 2023 11:56:50 +0000 (20:56 +0900)]
implement the wtz_screen protocol
Change-Id: I258fe058b18b2889cc0dbadd862623425b8c05ba
SooChan Lim [Fri, 10 Mar 2023 08:59:18 +0000 (17:59 +0900)]
add E_Desk_Group_Hook
Change-Id: If73021444670b9c8dc27e3142d4a3d19982da92c
Doyoun Kang [Wed, 29 Mar 2023 08:25:01 +0000 (17:25 +0900)]
support the set_auto_placement request of the tizen_launch_appinfo
1. change version of tizen_launch_appinfo to 2
2. implement callback function for set_auto_placement of tizen_launch_appinfo
3. add E_CLIENT_INTERCEPT_HOOK_AUTO_PLACEMENT intercept hook
Change-Id: I7a007e403337af41873b1c2205939098d41cf6d4
Jihoon Kim [Wed, 22 Mar 2023 07:28:20 +0000 (16:28 +0900)]
Rename function name to get timestamp
The function to get timestamp can be used generally.
Change-Id: Iff1e7db62724d15731dab2971d06ff5b317b21aa
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
Jihoon Kim [Tue, 21 Mar 2023 08:01:19 +0000 (17:01 +0900)]
Fix timestamp overflow issue
Change-Id: Ie94b23adf5180c769f1ca9cec0403006d415e9e1
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
Doyoun Kang [Wed, 22 Mar 2023 01:40:21 +0000 (10:40 +0900)]
e_policy_wl: support tizen_policy_set_layout request
Change-Id: I97bfb3fdf6ee52489644c2edf4ba8e21b4db8006
Junkyeong Kim [Mon, 13 Mar 2023 11:28:30 +0000 (20:28 +0900)]
e_comp_wl: Change input region set method
erase round off error protection code.
use ec's w and h value instead state's w and h to get input region.
Change-Id: I197500f61b8d3655ae609036ca91d03c99ca285f
Doyoun Kang [Mon, 13 Mar 2023 09:10:09 +0000 (18:10 +0900)]
e_client: fix bug for calculating ppu size
Change-Id: I677a598fa5aec7f228ecf0a486d174ffa517642c
Seunghun Lee [Fri, 10 Mar 2023 00:16:04 +0000 (09:16 +0900)]
e_comp_object: Quick fix for video punching issue
Applying render copy operation to smart object of video view didn't get
to take effect immediately after calling e_comp_object_mask_set() for
some reason. And it caused a visual glitch that the video view didn't
get displayed for a while.
Calling e_comp_object_mask_set(), the size of a rectangle object called
mask object must be 0x0 because there is obviously no
evas_object_resize() with this object. It would not be able to make evas
update its view. But it should be different for changing render
operation on smart object of video view. It should make some changes on
evas and make evas update its view. But it doesn't seem to work this
way. I'm not entirely sure, but it seems a bug in evas. Yet, I could be
wrong.
Since calling evas_object_resize() with the mask object seems to resolve
the issue, so let's avoid the issue with this way.
After all, calling evas_object_resize() with the mask object in
e_comp_object_mask_set() does make sense, and I don't see any side
effect in it.
Note that we might need to make another patch for this problem because
it's not the solution to get rid of root cause of the issue.
Change-Id: I04037517c30812f4120b9c024cea349e36723d71
Seunghun Lee [Tue, 7 Mar 2023 08:38:19 +0000 (17:38 +0900)]
Add libds and libds-tizen dependencies
No functional addition. It's just to make enlightenment be dependent on
libds.
Change-Id: Ia7473d6e47fdd9d17bb6e8894cf17778cc3ba13e
Junkyeong Kim [Wed, 8 Mar 2023 01:54:42 +0000 (10:54 +0900)]
Revert "e_comp_wl: Change input region set method"
This reverts commit
e73ae666dfcef2058ea9e150ed60428bb1c8aa04.
Change-Id: Iee34018bc783422a6267c77b82f4ad393ea4c2ef
Junkyeong Kim [Wed, 8 Mar 2023 01:48:44 +0000 (10:48 +0900)]
Revert "e_comp_object: Add input region set condition"
This reverts commit
363e8d480b0760cc8577f982ec27fc3aefa6fd00.
Change-Id: I525d0f795c01b38a776da90cacc5024ae6f9e6a9
Doyoun Kang [Mon, 6 Mar 2023 11:23:07 +0000 (20:23 +0900)]
e_policy_wl: add callback functions for set/unset pin mode
Change-Id: I3e4f8442a525b77bb542213eeebfd2ed104012dc
Junkyeong Kim [Fri, 3 Mar 2023 08:33:59 +0000 (17:33 +0900)]
e_comp_object: Add input region set condition
if width or height is 0, input region can be set 0x0.
it can makes region set error.
so do not add rect if width or height is c0.
Change-Id: Icc63a111a0fd6b49efe60d46e9772a096ee0e1d7
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
Junkyeong Kim [Fri, 3 Mar 2023 08:22:46 +0000 (17:22 +0900)]
e_comp_wl: Change input region set method
eina_tiler_intersection API has round off error. so do not use this API.
intead, use input region rectangle directly.
Change-Id: I744b79ebd3ac6ae759403709362730516b6e8797
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
duna.oh [Thu, 2 Mar 2023 08:45:05 +0000 (17:45 +0900)]
e_input: support other axis_source (finger/continuous) than mouse wheel
Change-Id: I704ef4980832ad6cfa248b4912fbf05c3b6f6068
Doyoun Kang [Thu, 2 Mar 2023 06:33:19 +0000 (15:33 +0900)]
e_client: modify e_client_pinned_set function
We changed a layer of the pinned set window to ABOVE layer
Change-Id: I5967f14ae43d17313c98802a612d2c339fedcfe6
Doyoun Kang [Thu, 2 Mar 2023 06:23:10 +0000 (15:23 +0900)]
e_info_client/server: add -prop_set option in winfo (enlightenment_info)
We add new option "prop_set" to test some property in winfo (enlightenment_info)
ex) winfo -prop_set [window] [property] [value]
First we support test for pinning window.
- winfo -prop_set 0x12345678 pin 1
Change-Id: I114b4b020870fcf8d1892f507b699303f4f67443
Doyoun Kang [Thu, 16 Feb 2023 01:35:09 +0000 (10:35 +0900)]
e_comp_wl: refactors handling state change callback
We refactor code to handle each evas_object_smart_callback for changing state
(such as maximize/unmaximize, fullscreen, etc) separately.
Change-Id: I676e5a7b44dbf2f013fb6aebbd6690c00971bff3
Doyoun Kang [Wed, 15 Feb 2023 05:48:31 +0000 (14:48 +0900)]
Revert "e_comp_wl/e_xdg_shell: refactor the size of configure event"
This reverts commit
871409cb2f434cfe532137ca8eaa0451f4568ef2.
Change-Id: I11d0a70f38430358a2784e9fc6a25ae975826a88
Doyoun Kang [Mon, 20 Feb 2023 01:59:46 +0000 (10:59 +0900)]
refactor code to handle sync_client_geometry_add
There was a potential bug for handling tizen_position_set request if the ec is under
pending_geometry.
We refactored code handling sync_geometry_set to compare the buffer size not serial.
For this, if the tizen_position_set was called under pending geometry, then we called
e_comp_wl_commit_sync_client_geometry_add with size(0x0).
In this case, the client could not send the buffer chagne event for size(0x0), so the
tizen_position_set request remained not to handled.
To resolve this, we refactor the e_comp_wl_commit_sync_client_geometry_add function.
Change-Id: Ib36eec68b918a5ebacbb192037a9dc4a082137a0
Doyoun Kang [Mon, 20 Feb 2023 01:49:13 +0000 (10:49 +0900)]
e_comp_wl: fix bug for handling tizen_move_resize_geometry_set
There was a bug that the window didn't move if a client called the tizen_move_resize_geometry_set
with same size. In this case, the server waited for the changing buffer event, but the client
didn't change the buffer. So, the server didn't move window until getting buffer change event.
To resolve this, we add code to check the size of geometry both current and requested.
If the size is same, then we doesn't pend to change geometry, and just move window.
Change-Id: I28c58fc28cbc9511c3e1ae6076933afae947813c
Junseok Kim [Thu, 9 Feb 2023 10:11:22 +0000 (19:11 +0900)]
e_comp_wl: Send wl_data_device event to client considering input region
There was a bug that window that didn't seen to user receives
wl_data_device_enter event.
In this case, the window has 32bit colored, full size window, input rect
to drawing shelves at bottom of the screen.
And the enlightenment consider only the client's geometry to send
wl_data_device_enter event.
The above situations can cause that the window receive the
wl_data_device_enter event.
For fix this issue, consider input region of the client when send the
wl_data_device_enter event.
Change-Id: Ib13496aecd249ac752a9d0ee02819ac10ee48aa4
Junseok Kim [Thu, 9 Feb 2023 09:53:56 +0000 (18:53 +0900)]
e_client: Add function to get E_Client under pointer consider input rect
Add function to get E_Client under pointer with considering input rect
of client.
Change-Id: I33d41f1434da70feb42f203bfc43412ff969b344
Doyoun Kang [Fri, 17 Feb 2023 01:48:06 +0000 (10:48 +0900)]
e_info_server: consider position for drawing input_region
Change-Id: I2aa1814e1d8cc1a0d400e41f527e904a6d7de02a
Changyeon Lee [Fri, 10 Feb 2023 03:53:37 +0000 (12:53 +0900)]
e_hwc_window_queue: remove unnecessary initailizing pointer
Change-Id: Ieccc8c19e2ed1ef2e1b24241236685242929fa9f
Changyeon Lee [Tue, 7 Feb 2023 08:01:41 +0000 (17:01 +0900)]
e_hwc_windows: remove unnecessary initailizing pointer
Change-Id: I4eeb7d81f53dcb557d4a4eee06d28ef90b15b876
Changyeon Lee [Tue, 7 Feb 2023 07:57:47 +0000 (16:57 +0900)]
e_hwc_window: remove unnecessary initailizing pointer
Change-Id: I37164e540684057d25b7cc229aff1f606136c78d
Changyeon Lee [Tue, 7 Feb 2023 07:56:54 +0000 (16:56 +0900)]
e_comp_wl_tizen_hwc: remove unnecessary initializing pointer
Change-Id: I7437a6a52f82611191fb05d2cb02c15241c0032f
Changyeon Lee [Tue, 7 Feb 2023 08:16:18 +0000 (17:16 +0900)]
e_presentation_time: remove unnecessary initailizing pointer
Change-Id: I9864acb27c6b9d01dd0db3621320298f831e7af1
Changyeon Lee [Tue, 7 Feb 2023 08:17:36 +0000 (17:17 +0900)]
e_explicit_sync: remove unnecessary initailizing pointer
Change-Id: I4efb91b935068389d1709683930901cb9128a0da
Doyoun Kang [Wed, 15 Feb 2023 02:14:30 +0000 (11:14 +0900)]
remove handling enlightenment-tests in post script
Change-Id: I019cd74e344d355d8e878cc8aaa94814b91f2006
Doyoun Kang [Wed, 15 Feb 2023 01:21:29 +0000 (10:21 +0900)]
remove enlightenment-tests in enlightenment package
Change-Id: If6a8c66c1f88d366011d349f9071362dc3d59d54
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
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
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
Doyoun Kang [Mon, 13 Feb 2023 07:02:04 +0000 (16:02 +0900)]
e_comp_wl.h: remove unused function
Change-Id: I020264804229c39426ed21daab7c92ec8a3f7896
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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