Junseok, Kim [Tue, 13 Apr 2021 07:17:32 +0000 (16:17 +0900)]
e_test_helper: add method for add/del supported_aux_hint
Change-Id: Ie83bbb48b7a3f66a4e70a7f84172d9866bfd2671
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Thu, 1 Apr 2021 07:58:30 +0000 (16:58 +0900)]
e_test_helper: added aux hint changed signal
Added aux hint changed signal to registered test window.
It hooks E_CLIENT_HOOK_AUX_HINT_CHANGE of registered window and send "AuxHintChanged" signal to e-tizen-unittest.
Change-Id: Ib2549682a5c85f5755d82a1e1df45c10dfac8cdf
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Seunghun Lee [Thu, 15 Apr 2021 07:09:06 +0000 (16:09 +0900)]
subsurface: Fix messed up stack order of sub-surface
The stack order of sub-surface sometimes got messed up when re-stacking
main surfaces.
Thinking of the case as an example that placing a surface underneath
another surface that has sub-surfaces, it obviously wasn't enough to
re-arrange sub-surfaces stack order only for E_Client given by restack
callback function.
This patch fixes it by updating stack order not only for given E_Client,
but also for E_Clients neighbored with given E_Client.
Change-Id: I95f11c9998ed4f1729e7ca3583a4f41f5dc4edf8
Seunghun Lee [Thu, 15 Apr 2021 02:38:57 +0000 (11:38 +0900)]
subsurface: Move a handler for updating stack order of subsurfaces
Place it with the other subsurface functions.
Change-Id: I57adb07ef066752e93e6027c43884bb2b0042c04
Junseok, Kim [Mon, 19 Apr 2021 01:47:24 +0000 (10:47 +0900)]
e_policy: send iconify when uniconify_by_vis job canceled
If the client's uniconify job is canceled by the enlightenment, the client's internal
state remains "Uniconic state" till the enlightenment send an iconic state change event.
In this situation, black screen can appear if the client is visible again.
This is because the client know its state is "uniconic" and doesn't render anymore.
To fix this, we add code that enlightenment sends an iconic state change event to client
to change its internal iconic state when the uniconify_by_vis job is canceled.
Change-Id: If2e71769cd622cfdb11aba0c655ea46a35bcb497
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Changyeon Lee [Tue, 13 Apr 2021 09:15:56 +0000 (18:15 +0900)]
e_hwc_windows: fix getting stuck compositing in explicit fence sync
do not release display buffer to queue if window isn't updated
Change-Id: I5d242478b8d092bd06d2ebcea74495b0e3089aa4
Doyoun Kang [Wed, 7 Apr 2021 10:32:05 +0000 (19:32 +0900)]
e_policy_visibility: do not add internal ec in below activity list
If an internal ec is added to the below activity list, then e could get timeout for uniconify
pending job because it does not send buffer attach, damage, commit event.
To prevent timeout, we change code not to add the internal ec (aka made by e or e's module)
in the below activity list.
Change-Id: I6f6e9a2c905e931cfb6bd10bdc6446d8f718095d
Doyoun Kang [Wed, 7 Apr 2021 09:29:43 +0000 (18:29 +0900)]
e_policy: check config before calling e_client_revert_focus when window is lowered
If the e_config's calc_vis_without_effect is set, e doesn't call e_client_revert_focus.
In this case, e_client_revert_focus is called after calculating visibility.
Change-Id: I89a47227a093cce7e6446832889785608a4b82c7
Junseok, Kim [Fri, 2 Apr 2021 07:08:12 +0000 (16:08 +0900)]
e_policy_visibility: do not below_iconify when ec is transparent
No need to below uniconify if the lower / hide window is transparent.
Because of below windows are already uniconic state.
Change-Id: I1c94ae0080e9fd97d075cb6ab7669cfbc13b9b38
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Seunghun Lee [Mon, 5 Apr 2021 06:54:17 +0000 (15:54 +0900)]
e_comp_object: Remove obsolete stacking transform transp object
Now that transform transp object's been added to smart member as a
child(see 4217311), to stack transform transp object with ancestor
object got obsolete.
Change-Id: I6aa421a2dde285559d79af694f682845dc16b526
Seunghun Lee [Mon, 5 Apr 2021 06:41:15 +0000 (15:41 +0900)]
e_comp_object: Fix wrong punch of window due to transp object stack order
The transform transp object's been added to smart member as a child(see
42173111), so it cannot be re-stacked by
"_e_comp_object_transform_obj_stack_update" due to the policy of smart
member objects.
For this reason, transform transp object must be stacked lowest of
children. Otherwise transform transp object will stay above window
contents and then cover contents.
Change-Id: I92293de7e8d98fe5b48e03981cd75663bb679ddd
Doyoun Kang [Fri, 2 Apr 2021 03:53:30 +0000 (12:53 +0900)]
add norender_disable feature
We added a new API
- void e_policy_visibility_norender_disable_set(Eina_Bool disable)
Change-Id: I35c5f1df99701d2dc73a9a07c36ab5e1667e452d
Seunghun Lee [Wed, 10 Mar 2021 08:25:46 +0000 (17:25 +0900)]
e_client: Introduce a way of embdding a client to support wtz_foreign protocol
This is an attempt to embed one E_Client into another E_Client and make
it live in. Thus embbeded E_Client will follow stack order of its
container E_Client automatically by evas smart object.
This patch will be necessary in the future patch to support wtz_foreign
protocol.
Change-Id: I3b0dde95e13aee0ae58275e3afdeb0befd6a37ca
Seunghun Lee [Wed, 10 Mar 2021 08:42:29 +0000 (17:42 +0900)]
e_comp_object: Add transp object as a member object of smart object
Seeing "smart_member_del" when transp object gets deleted, it seems like
transp object is supposed to be a member of smart object. I assume that
it was accidentally left out for some reason.
So, this patch will make transp object member of smart object.
Otherwise, it won't be able to track stack order of parent object if
parent object gets added to another smart object.
Change-Id: If465c24ef46aadf5f5b272354b009ab55e608689
Seunghun Lee [Wed, 10 Mar 2021 08:40:15 +0000 (17:40 +0900)]
foreign: Support wtz-foreign protocol
This is a first commit to support wtz-foreign protocol.
This is to support out-of-process video playing surface.
wtz-foreign protocol is to enable one client to share its surface to
another client.
In addition to just sharing surface, the client which acquires a
reference of exported surface then can change attributes - such as size,
orientation, and map state - of exported surface.
So, the client which export a surface can draw its contents onto a
surface without concerning about attributes such as size like as
mentioned.
The e_foreign contains implementation of wtz_exporter and wtz_importer.
And e_foreign_surface contains implementation of wtz_exported_surface
and wtz_imported_surface.
Change-Id: I9ebe90cb930ba7cfa142b6763395036d21d10072
Duna Oh [Thu, 10 Sep 2020 04:56:49 +0000 (13:56 +0900)]
e_policy_visibility: allow parent window to uniconify when child's
visibility is UNOBSCURED
When parent window is activated, parent should wait for the child to be
uniconify-rendered AND 'UNOBSCURED'.
This commit is to fix a visual defect that the parent window was uniconified
before the child and child was uniconified later.
Change-Id: I4fe0d5b4a6348c413467d8044e1cebf25becc640
Doyoun Kang [Mon, 29 Mar 2021 03:44:19 +0000 (12:44 +0900)]
e_service_quickpanel: fix memery leak
Change-Id: If9db89c4b12c9470a95832cc9ebab5b0474203b2
Doyoun Kang [Mon, 29 Mar 2021 02:34:03 +0000 (11:34 +0900)]
e_module: fix code - using freed resource
We used freed resource(m->name). This patch fixes this error
Change-Id: I577a6c679027adbdd9ed765089fc0e19dfaca907
Changyeon Lee [Tue, 23 Mar 2021 09:43:05 +0000 (18:43 +0900)]
e_hwc_windows: set skip ui if color of window is invisible and render copy
if color of window is invisible and render op is copy,
window located below it is invisible.
in the below case, stack 2 window isn't added to visible window list
after this patch is applied.
stack window
1 24bit transparent internal window(render copy and full size)
2 skip iconify window (evas object is shown)
Change-Id: Ie161f9a8095fac35febd1da19c1399aa55307b12
Junseok, Kim [Thu, 25 Mar 2021 05:06:48 +0000 (14:06 +0900)]
e_comp_wl: add log for argb value changes
All of ec->argb assignments are print their change log except here.
So, added log for argb value changes for easy debugging.
Change-Id: I0e583159d3d81f55b7c7f65ed1e4711053f888fe
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Changyeon Lee [Wed, 24 Mar 2021 08:09:33 +0000 (17:09 +0900)]
e_explicit_sync: Fix error duplicate release in buffer flush state
In buffer flush state, buffer of client is unreferenced before
e_explicit_sync_surface_commit is called.
it causes error duplicate release because pending_buffer_release is
existed even if client call wl_surface_commit.
so this patch call e_explicit_sync_surface_commit before e_pixmap_buffer_clear
and destroy pending_buffer_release if client doesn't reference buffer.
Change-Id: I204ae447305aaa3fd8102a94665c05e6fca04a4f
JunSeok Kim [Wed, 24 Mar 2021 07:20:05 +0000 (07:20 +0000)]
Revert "Remove e_client_transform_core_update in e_client_transform_core_remove"
This reverts commit
039398c93cd6daaff369577df55133aabd9e96c5.
Reason for revert: This patch will re-commit with related module patch
Change-Id: Ifab1a7297771d718a7708ac3e8f70c7e20f5eb7e
Changyeon Lee [Fri, 12 Mar 2021 04:05:58 +0000 (13:05 +0900)]
e_hwc_window_queue: use list instead of hash for managing queue
iterator object can't be deleted in EINA_ITERATOR_FOREACH.
it can cause a crash.
so e_hwc_widow_queue use list instead of hash
Change-Id: Ic2ca95a6ba16de0feb12458a7b1cc4ef3a06aed4
Doyoun Kang [Thu, 11 Mar 2021 05:38:30 +0000 (14:38 +0900)]
Remove e_client_transform_core_update in e_client_transform_core_remove
When we change or replace some transform (remove old transform and add new transform),
there was an unnecessary calculation for removing old transform because of calling
e_client_transform_core_update in e_client_transform_core_remove().
So, we remove e_client_transform_core_update in e_client_transform_core_remove.
FYI,
e_client_transform_core_update is called in idler_before handler(exactly _e_client_eval).
If we want to apply transform immediately, we have to call e_client_transform_core_update
after calling e_client_transform_core_remove.
Change-Id: I17b2cbb360769ca69793d6ca55cffab4178feba4
Doyoun Kang [Wed, 10 Mar 2021 08:03:22 +0000 (17:03 +0900)]
e_client/e_comp_wl: set role information for each transform
We use a E_Util_Transform to apply various transform.
However, there was no way to know what purpose of each transform that
was applied to E_Client.
This patch sets the role to below transforms.
- viewport_transform
- base_output_resolution
- desk_group
Change-Id: Ia8f47c603767744e6ca0ca324ccca9f9f82a37b5
Doyoun Kang [Wed, 10 Mar 2021 07:40:18 +0000 (16:40 +0900)]
e_info_client/server: add role option for transform test
Change-Id: Ia490960df2e2cb7a83645a0e7c7476b8a863cb8c
Doyoun Kang [Tue, 9 Mar 2021 06:49:47 +0000 (15:49 +0900)]
e_info_server: print role for transform information
Change-Id: Icee19d85575ba237cf6461ea53bae6d9085c3a60
Sung-Jin Park [Mon, 8 Mar 2021 20:49:42 +0000 (05:49 +0900)]
e_comp_wl: skip sending touch cancel even for a 'video' ec
In _e_comp_wl_surface_state_commit(), there is a process of applying a new map
information to the ec if the viewport information of a given ec's buffer is changed.
Before applying the map information, if a touch down or move event is being sent to
the ec, we usually send a touch cancel event to it. This is done to prevent the
dramatic changes of touch event coordinates before and after applying
map information.
By the way, if the given ec is a 'video' ec, we must not send a touch
cancel event as the video ec itself doesn't get touch event(s).
The other ec which contains the video ec will be the touch event(s)
instead. Therefore we must not send a touch cancel to the 'video' ec.
Change-Id: I433329b226d5d268b96fe79572a6927198fc4d0e
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
Seunghun Lee [Wed, 3 Mar 2021 07:54:53 +0000 (16:54 +0900)]
video: Hide a video view if dst size is zero
The function _e_video_hwc_tdm_viewport_clip() crops viewport of video
to fit it into screen, and the dst size of tdm gets zero if viewport
of video is out of the screen.
However, setting dst size to zero is highly likely to be treated as
illegal. That means applying the change would be failed and former
changes would finally be kept.
Since setting destination size to zero implies that it should be hidden,
thus this patch makes video implementation hide a video view if dst size
of tdm is zero.
Change-Id: Iae5a86e8dcbb6b13306ee72d4aef11fac139c3d4
Seunghun Lee [Fri, 19 Feb 2021 07:21:33 +0000 (16:21 +0900)]
e_policy_wl: Raise a protocol error for a request with invalid parent
The E crashed with null pointer access to comp_data of
sub-surface's parent in _e_comp_wl_subsurface_order_commit() function.
And it turned out that the parent was an internal window created by E.
But the internal window cannot be the parent of sub-surface
theoretically. So, it is possible for wl_client to try to create
sub-surface with invalid resource ID for parent using
tizen_policy::get_subsurface protocol.
So, this patch will raise a protocol error for that case to get it
failed early.
Change-Id: I98351de962e3ea8cf5b8d218a858859929b0da5d
Changyeon Lee [Tue, 16 Feb 2021 07:17:10 +0000 (16:17 +0900)]
e_comp_wl_remote: add override when saving image
e_comp_wl_remote_surface_image_save is called in unmap of surface
so add override at e_comp_wl_remote_surface_image_save
Change-Id: I0bf66b3afbdc917f742969bd013253d3b6e53b89
Changyeon Lee [Mon, 8 Feb 2021 03:33:03 +0000 (12:33 +0900)]
e_hwc_windows: set transition if window has transtion and client state
fix flickering this case
1. A window set device state and unredirect
2. target window render frame which doesn't have A window frame
3. A window set client state before hwc state isn't accepted
4. target window commit gl compositing frame, but flickering
is occurred because 2 step frame doesn't have A Window
Change-Id: Icd8cbf102d21e73a769bb3392fc9dc5b7b2adec8
Doyoun Kang [Wed, 17 Feb 2021 08:03:38 +0000 (17:03 +0900)]
e_comp_object: fix typo
Change-Id: If15c0ec51403430c2448972bc2af0abb668eddfb
Doyoun Kang [Wed, 17 Feb 2021 07:13:45 +0000 (16:13 +0900)]
e_client/e_comp_object: add log for debug information
Change-Id: I569390da409c065faecbe1fe6a600dd2c75a1b3a
Junseok, Kim [Mon, 8 Feb 2021 12:38:34 +0000 (21:38 +0900)]
e_service_quickpanel: change focus set method to latest_set for ensure qp is focusable
To ensure quickpanel is focusable, use e_client_focus_latest_set for give focus to quickpanel instead of e_client_frame_focus_set.
and added condition check of quickpanel's evas_object is visible.
Change-Id: I043de2f002d562b4019ef70b40fb7df1d820f12f
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Mon, 8 Feb 2021 12:37:20 +0000 (21:37 +0900)]
e_client: check ec is in the Zone while focusable check
Change-Id: Ibff341d0b57d9bc07022d794d11c135dd3447072
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Seunghun Lee [Wed, 10 Feb 2021 04:55:40 +0000 (13:55 +0900)]
video: Fix crash when commit video buffer with null resource
The resource of surface can be null, and it led segfault.
Change-Id: I61cd033f9c9f37d10929e5ca3741780e3e256cbf
Junseok, Kim [Thu, 28 Jan 2021 10:05:08 +0000 (19:05 +0900)]
e_service_quickpanel: don't send ignore_output_transform
Change-Id: I0c4ae232e958502d375b3f1396944200e0fa95b6
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Changyeon Lee [Thu, 4 Feb 2021 04:29:23 +0000 (13:29 +0900)]
e_service_quickpanel: set map to mirror obj if origin obj has map
buffer of client can have transform according to screen rotation.
if buffer has transform, effect object has map transform to
rotate buffer.
so mirror obj should have map transform for getting image which
doesn't have transform.
Change-Id: I87cc8af80a21f2d78c0410b4e5b704f905d076ad
Seunghun Lee [Wed, 3 Feb 2021 11:05:36 +0000 (20:05 +0900)]
video: Fix crash when commit video buffer with deleted E_Client
With change
32a04d07, this crash was made since null buffer can be
given to _e_video_hwc_windows_commit_data_set().
Accessing comp_data of deleted E_Client caused a crash.
Change-Id: Icaa8e0022a8d81c51f611a0180f65112479979bf
Doyoun Kang [Wed, 3 Feb 2021 07:20:17 +0000 (16:20 +0900)]
e_policy_wl: send tizen_position changed event while creating tizen_position resource
If the ec's position is not same to client's geometry which set by client,
then e send tizen_position changed event to the client to notice new position.
There was a bug that the window's position was not changed in below case.
"Hide -> Unset user geometry -> Show -> Set user geometry -> Move -> Resize".
This was because the ec's position was not same to the client's position.
In this case, ec's position was (0,0) and client's position was not (0, 0).
Change-Id: I53074b2de3bb98cb0aeff629a89776bcf1d380cb
Seunghun Lee [Thu, 28 Jan 2021 07:18:29 +0000 (16:18 +0900)]
video: Update comp object after cleanup HWC resources
It was discovered that abnormal frame was exposed when video render
backend got switch to SW compositing from HW due to the transformation
of 180 degree under no HW rotation support. This problem only occurred
on one frame at the very first try.
This change updates comp object (by calling e_comp_wl_surface_commit)
after cleanup HWC data. I couldn't figure out the root cause, but it
looked like HWC implementation affected updating efl object in some way.
Nonetheless, This change all makes sense on its own after all.
Change-Id: Ia99e5d626506d68128733b39b6f82cd763ee70c4
Seunghun Lee [Tue, 2 Feb 2021 07:44:52 +0000 (16:44 +0900)]
video: Keep video client from being resized by wl_surface::commit
When video client is displayed on HW overlay, it is wasteful to resize
its evas object. It eventually causes evas rendering to run wastefully.
Plus, evas rendering normally run on idle enterer and
wl_display_flush_clients() which flush its messages for client is
handled on fd handler of ecore event loop.
So, if evas rendering happens because of resize of evas object, then
wl_surface::frame will be delayed depending on it,
even though video contents is not actually rendered by evas.
Change-Id: I44332acf5079a204f8e833f35fe2ef27255bb9dc
Seunghun Lee [Sat, 30 Jan 2021 01:33:10 +0000 (10:33 +0900)]
video: Fix double cropping source/output region of tdm
Cropping an already cropped source/output region is an error.
So, this change makes updating tdm config happen once during render job.
So far this has been no problem since wl_client didn't try to set its
output region beyond the screen. However, once wl_client tried to do
that, the problem came out because of the double cropping.
More specifically, source region was a problem. source region was
cropped and updated once during applying viewport, but it was cropped
and updated again with already cropped source region during applying
map.
Change-Id: Ia8efb27a3af66eda5564f166a9ea734d21a93cf1
Seunghun Lee [Thu, 28 Jan 2021 00:32:26 +0000 (09:32 +0900)]
video: Fix starvation of wl_buffer::release for video surface
This change drops reference count on wl_buffer when null wl_buffer is
newly attached on wl_surface. It would eventually send
wl_buffer::release.
Change-Id: Iddc829e77889dc0317aaa69e9c01775a189abfdc
Junseok, Kim [Tue, 26 Jan 2021 05:51:41 +0000 (14:51 +0900)]
e_devicemgr_inputgen: remove unused variable
Change-Id: I295cc47b7237cb6d54b40ef0af7c051f6ae3cc75
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Wed, 27 Jan 2021 03:52:05 +0000 (12:52 +0900)]
e_service_quickpanel: add null check of qp->ec
Change-Id: Ie14559244229e8916b34b414cf832dd42b262d96
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Changyeon Lee [Mon, 25 Jan 2021 10:16:18 +0000 (19:16 +0900)]
e_hwc_windows: remove restriction ui subsurface
subsurface can be displayed by DEVICE type
Change-Id: I63506b0857cf981e401ad67e9ea048d332cd52ea
Changyeon Lee [Mon, 25 Jan 2021 06:54:54 +0000 (15:54 +0900)]
e_hwc_window: add e_hwc_window_get and remove e_hwc_window_new/free
1. make e_hwc_window_new/free to static func _e_hwc_window_new/del
2. use e_hwc_window_get at video and presentation mode
3. add e_hwc_window_video_set for video
Change-Id: I286f36bc7354cdc012af9e2de87a28c089240568
Changyeon Lee [Mon, 25 Jan 2021 04:35:24 +0000 (13:35 +0900)]
e_hwc_window: add e_hwc_window_ref/unref
use e_hwc_window_ref/unref instead e_object_ref/unref
Change-Id: I750999e846434ff811669346e186936a7345a495
jeon [Mon, 4 Jan 2021 09:09:54 +0000 (18:09 +0900)]
e_input: support a LIBINPUT_EVENT_TOUCH_CANCEL
Change-Id: Iea7a8754cd9a4c6fce267792a613c6376754fe24
Junseok, Kim [Thu, 21 Jan 2021 11:32:13 +0000 (20:32 +0900)]
e_service_quickpanel: set focus to quickpanel that finish show effect and not focused
Change-Id: Icdec3e1a9bf066e91a18f165bb09ad6398cc172d
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Changyeon Lee [Wed, 20 Jan 2021 05:08:53 +0000 (14:08 +0900)]
e_hwc_window_queue: reset constraints if norender is pushed
if norender is pushed, hwc doesn't change accpeted state of window.
so hwc_window can be block render because hwc_window_queue doesn't
send usable event.
Change-Id: I6cddbd80866a294561a70eb9729ef0e14ea3b2fa
Changyeon Lee [Tue, 19 Jan 2021 12:35:02 +0000 (21:35 +0900)]
e_hwc: add E_HWC_HOOK_NORENDER_SET hook
Change-Id: Iace117688b6b501bd2e276f5307763b8d8005dd0
Changyeon Lee [Tue, 19 Jan 2021 04:27:23 +0000 (13:27 +0900)]
e_hwc_window: consider output transform when set cursor transform
Change-Id: Ic8b412bf6f774e3926ef09e790212aed6873c5df
Changyeon Lee [Fri, 15 Jan 2021 08:26:58 +0000 (17:26 +0900)]
e_comp: remove unnecessary error log
Change-Id: Ibf12a713c82262724cbc25a2f5ae3c3769c6c00e
Changyeon Lee [Thu, 14 Jan 2021 10:55:11 +0000 (19:55 +0900)]
e_hwc_windows: don't check visible of client if client is added to visible list
if ec is got from effect_client, it checks twice visible of hwc_window
Change-Id: I0941695a92eeb102e124de0e63bf259cc785d084
Changyeon Lee [Thu, 14 Jan 2021 08:27:43 +0000 (17:27 +0900)]
e_hwc_windows: set window transition even if target bufer isn't changed
Change-Id: I145c279108436c08e8ee69a5a64e9e1f1ad2456f
Changyeon Lee [Tue, 12 Jan 2021 09:23:20 +0000 (18:23 +0900)]
e_hwc_window_queue: use size of buffer when to compare queue with client
comparing buffer and queue is better way
Change-Id: Ia71e443b908d9182ec0d7e68df7317e464240a97
jeon [Fri, 15 Jan 2021 05:44:25 +0000 (14:44 +0900)]
e_devicemgr: create an input generator touch device has configurred touch count
Change-Id: Ic4f9907a120c0844cfa24193bf4000bcf1c87bf6
Seunghun Lee [Tue, 19 Jan 2021 09:48:31 +0000 (18:48 +0900)]
subsurface: Regard wl_subsurface for video viewport as not normal subsurface
This is a workaround patch to fix the problem that some E_Client
couldn't take advantage of HW Composition because of its child
wl_subsurface which is not actually viewable due to its purpose
for video viewport.
Now that this function returns EINA_FALSE if given E_Client has
1x1 wl_subsurface or the one for video viewport, the implementation
of HWC will try to apply given E_Client to HW Composition.
Change-Id: I8aec661647187faac7ff1be67154ab5e32080e79
Junseok, Kim [Tue, 19 Jan 2021 08:31:01 +0000 (17:31 +0900)]
e_client: consider ec's force_obscured while focusable check
Change-Id: Icd4843f41e491782e091af7450e1557f2e96e7f1
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Changyeon Lee [Wed, 13 Jan 2021 10:49:36 +0000 (19:49 +0900)]
e_hwc_windows: set E_HWC_WINDOW_STATE_NONE if color of image is invisible
module set argb to 0000 for making invisible even if comp object is show state
Change-Id: Ib1fb25936496128e6889f4a0e40f9ce15c35c08f
Seunghun Lee [Wed, 13 Jan 2021 10:05:33 +0000 (19:05 +0900)]
video: Fix segfaults running render job with deleted E_Client
Rendering job relies on 'comp_data' field of E_Client, and 'comp_data'
gets invalid at some point after E_Client is deleted.
Since there is no way to know when 'comp_data' gets invalid exactly,
it checks if E_Client is deleted whenever render job is needed.
Change-Id: I472abb606795540fbd79f55cf2323596a244c4e2
jeon [Wed, 30 Dec 2020 04:52:00 +0000 (13:52 +0900)]
e_devicemgr: support a set_touch_count request
Change-Id: I96fd84bcbf2bf01ac3d54f4da5f116ad690c3435
jeon [Tue, 22 Dec 2020 10:00:12 +0000 (19:00 +0900)]
e_devicemgr: send touch max slot count to client
Change-Id: I04555cc88b4840376ec666f97692aa65440db8ed
Junseok, Kim [Fri, 8 Jan 2021 05:22:53 +0000 (14:22 +0900)]
e_client: check ec is rotation show pending when zone visibility calc
There was a bug that send iconify to ec when ec is doing rotation.
due to iconify event, the application turns to pause and didn't ack
rotation.
for fix this issue, if the ec is rotation show pending, don't append to
changed_list the ec.
Change-Id: Ia10f94c91bb08fb595f61c457adbb40868247ef8
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Sung-Jin Park [Wed, 13 Jan 2021 18:31:37 +0000 (03:31 +0900)]
e_info_server: update screen_rotation_pre value to e.cfg as a variable of e_config
Change-Id: Ia9be4736a20b196d65cee18bfd3a43d7734768b2
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
Changyeon Lee [Mon, 11 Jan 2021 07:59:47 +0000 (16:59 +0900)]
e_plane_renderer: don't set backup buffer if surface was acquired from fb_target
if renderer state is candidate, surface of plane was acquired from fb target
Change-Id: I3dc4367837b167fd90ea83a574ac70225ff9c212
Changyeon Lee [Mon, 11 Jan 2021 07:40:58 +0000 (16:40 +0900)]
e_plane: fix wrong transform of backup buffer
Change-Id: If5a28f56a0141a047d7aca3f4ede6cd82a213f83
Changyeon Lee [Thu, 7 Jan 2021 05:15:43 +0000 (14:15 +0900)]
e_policy_visibility: don't force update if comp_object is not redirected
if comp_object is not redirected, the compositor doesn't want to update it.
for example, if client is composited by hwc, comp_object is not redirected.
Change-Id: Ic3affe0b6a81d0ac7a03bb8f15d567c456d9d816
Doyoun Kang [Mon, 11 Jan 2021 07:11:19 +0000 (16:11 +0900)]
e_client: set ec->changed in e_client_show_pending_unset
Change-Id: I49d0067fd2f8ff0186224b17452247059a5ee45c
Doyoun Kang [Mon, 11 Jan 2021 04:45:15 +0000 (13:45 +0900)]
e_test_helper: remove coverity issue - REVERSE_INULL
Change-Id: I863e130e2658535db11b4660aa5169c99a0cc506
Junseok, Kim [Fri, 8 Jan 2021 04:50:01 +0000 (13:50 +0900)]
e_comp_wl: do not update transform core if deskzoom doing animation
Change-Id: I4a6cd642966b074448bd319db39262add4490268
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Fri, 8 Jan 2021 04:49:00 +0000 (13:49 +0900)]
e_client: doing transform core update with zoom of all subsurfaces when subsurface transform core update
Change-Id: I4784995375fef667cbb49b3ca820d40a603395b2
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Fri, 8 Jan 2021 04:45:39 +0000 (13:45 +0900)]
e_desk: add function for check desk zoom is animating
Change-Id: Id9cc3e73e2d2439a94d570408e6bab6a21ddf95b
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Doyoun Kang [Mon, 4 Jan 2021 03:27:55 +0000 (12:27 +0900)]
e_config/visibility: add a configuration - deiconify_pending_timeout
Change-Id: I3a687a82d8629453ab05b0148a5e574ac414e242
Junkyeong Kim [Tue, 29 Dec 2020 07:57:25 +0000 (16:57 +0900)]
e_info_server: add null checking in _e_info_server_cb_screen_dump_cb
Change-Id: I78e446544c0dd9235396966ab9c15130f73c8fec
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
Junkyeong Kim [Mon, 28 Dec 2020 09:49:25 +0000 (18:49 +0900)]
e_info_server: change screen_dump function to tbm_surface_internal_capture_buffer
Change-Id: I8fb2bd4c012720b00b6efd3d1b7d49940482ea8a
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
jeon [Mon, 28 Dec 2020 12:42:50 +0000 (21:42 +0900)]
e_devicemgr_input: realloc memory for multi touch when max touch count is updated
Change-Id: I9fddb59ae1c187e2de0de18edd5374537fca771d
Changyeon Lee [Thu, 24 Dec 2020 08:55:45 +0000 (17:55 +0900)]
e_hwc_window: don't override client type if override of ec is false
Change-Id: I795c512662744936c1d0a676826f33ea874d6cb7
Changyeon Lee [Wed, 16 Dec 2020 08:50:49 +0000 (17:50 +0900)]
e_policy_visibility: remove norender push/pop
norender is pushed for keeping the frame of client.
but it isn't needed because the evas object isn't changed
untill job is executed.
Change-Id: Ifff542739fe8cbf5fe5fdb94241e148ed0259896
Changyeon Lee [Wed, 16 Dec 2020 08:49:36 +0000 (17:49 +0900)]
e_hwc_windows: don't update windows if norender is pushed
Change-Id: Iea6c4e2ac817eb2f872f2810c42b09b06fab40c9
Junseok, Kim [Thu, 17 Dec 2020 08:04:03 +0000 (17:04 +0900)]
e_info_server: stop loop if client is NULL
if the client is NULL, then stop the loop for prevent NULL pointer dereference.
Change-Id: I7f35aac091f1ef61a456c7a57e4b38e1abf30ecf
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
Junseok, Kim [Thu, 17 Dec 2020 07:42:16 +0000 (16:42 +0900)]
e_input_device: free eina_hash in error case
Change-Id: I75ab8cead30a699485ae486354ececd207b11bcc
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
SooChan Lim [Tue, 15 Dec 2020 10:51:33 +0000 (19:51 +0900)]
e_comp_object: remove the useless condition
e_client_has_xwindow(ec) always returns false.
Change-Id: I29baa19da7f6f7b51ac85781e8a94850e9a42876
SooChan Lim [Tue, 15 Dec 2020 10:48:57 +0000 (19:48 +0900)]
e_comp_wl: remove the useless condition
e_client_has_xwindow(ec) always returns false.
Change-Id: I95f871d2925825e7d39f0f9e5d43c3a53e8a4032
Sung-Jin Park [Wed, 9 Dec 2020 09:01:46 +0000 (18:01 +0900)]
e_input, e_comp_wl, e_devicemgr: enable setting the maximum touch count using configuration
Change-Id: Id4c941d5154acdb97e4df1618c9f9830d997dd21
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
Junkyeong Kim [Tue, 15 Dec 2020 07:40:53 +0000 (16:40 +0900)]
e_output: check rotation value to execute e_comp's evas resize in _e_output_primary_update
Change-Id: I8fb736f6fab59c6b0ae746f283e125ccd88cc7a2
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
SooChan Lim [Mon, 14 Dec 2020 08:58:44 +0000 (17:58 +0900)]
tests: remove extern "C"
extern "C" is useless
Change-Id: I0306004c6bb901c07e074e587dc2091ab6642103
SooChan Lim [Mon, 14 Dec 2020 06:34:40 +0000 (15:34 +0900)]
tests: add tc-e_util_transform test cases
This file contains testcases for e_util_transform api.
Change-Id: I3706e0f504d86550e15a266c83653d204dd6a3dc
SooChan Lim [Mon, 14 Dec 2020 07:20:28 +0000 (16:20 +0900)]
e_win: fix build-error at the case of -fpermissive option.
Change-Id: If44b53f55e9901ca80f50bc49310c383277f038e
SooChan Lim [Mon, 14 Dec 2020 06:51:54 +0000 (15:51 +0900)]
e_dialog: change the name of argument
The class keyword make compile-error when enlightenment builds with c++ compiler.
Change-Id: Id87c53c29faff3aa1c739823a4b73a23b8d0c926
SooChan Lim [Mon, 14 Dec 2020 06:50:16 +0000 (15:50 +0900)]
e_client: add __cplusplus define at usage of class keyword
The class keyword make compile-error when enlightenment builds with c++ compiler.
Change-Id: I399c45847cf8d27197020668d9cf8cf6720f8844
SooChan Lim [Mon, 14 Dec 2020 06:33:33 +0000 (15:33 +0900)]
e_output: expose the enum values.
if not, the file which includes e_output.h makes build error.
Change-Id: I48d13bd3e37b974acc30e46c3cce79628c6b3049
SooChan Lim [Mon, 14 Dec 2020 06:32:12 +0000 (15:32 +0900)]
e_gesture: expose the enum values.
if not, the file which includes e_gesture.h makes build error.
Change-Id: I5b0c53ddf060e5b6c1877255f5b9fff4a23c1c1a
SooChan Lim [Mon, 14 Dec 2020 03:53:11 +0000 (12:53 +0900)]
tests: add enlightenment-tests for unit testing.
make a binary and a package
- binary name : enlightenment-tests
- package name : enlightenment-tests-xxx.rpm
Change-Id: Iba34889298a3a94c488dbfe65c9ccd59efc8fd40
SooChan Lim [Sat, 12 Dec 2020 06:05:00 +0000 (15:05 +0900)]
e_comp_wl: use cdata instead of ec->comp_data at _e_comp_wl_surface_state_commit function
Change-Id: Ib7220c67826dcb104bcd7bea658de32b4915643a
Junseok Kim [Thu, 10 Dec 2020 10:08:09 +0000 (19:08 +0900)]
e_policy_stack: check top is mapped when transient_for apply
Change-Id: I94f610d1b5c42d76cbafb022652a27f45dc64bae
Signed-off-by: Junseok Kim <juns.kim@samsung.com>
Doyoun Kang [Fri, 11 Dec 2020 12:00:12 +0000 (21:00 +0900)]
e_comp_object: reset focus if focus_policy is not top_stack in _e_comp_smart_hide
Change-Id: I67c11e86f9c986be700d4d4022e0892c683ca483