- generally touch position is calculated with img object size(last child object of smart object).
- if ec is transform for hwc and screen rotation, img object is resized by transformed buffer
and then evas calculate touch position with transformed size and e20 get worng touch position.
- for calculating touch position with surface size, e20 add map_input_obj and resize with surface
size when ec is transformed
- but evas can't change evas_object which calculated (img obj->map_input_obj) when touch is pressed
- so ec isn't available hwc if client is needed transform and touch is pressed
Change-Id: I57353cf0a2fb611799b16af1159e625b7e04c944
E_Comp_Wl_Client_Data *cdata = (E_Comp_Wl_Client_Data*)ec->comp_data;
E_Output *eout;
int minw = 0, minh = 0;
+ int transform;
if ((!cdata) ||
(!cdata->buffer_ref.buffer) ||
* we can control client's buffer transform. In this case, we don't need to
* check client's buffer transform here.
*/
- if (!e_comp_screen_rotation_ignore_output_transform_watch(ec))
+ transform = e_comp_wl_output_buffer_transform_get(ec);
+ if ((eout->config.rotation / 90) != transform)
{
- int transform = e_comp_wl_output_buffer_transform_get(ec);
-
- if ((eout->config.rotation / 90) != transform)
+ if (e_comp_screen_rotation_ignore_output_transform_watch(ec))
+ {
+ if (e_comp_wl->touch.pressed)
+ return EINA_FALSE;
+ }
+ else
return EINA_FALSE;
}