Dear All, Seeing the below wayland log without above workaround focus is going 0 to surface. I think it means surface is failing to grab the touch focus. What could be the reasons of focus not getting setup?
I think this [3687363.407] [email protected]_focus(90, 4, 0) need to be [3687363.407] [email protected]_focus(90, 4, 1) for touch to work. any ideas here? [3687298.588] -> [email protected]() [3687314.601] [email protected]() [3687314.718] [email protected](299298) [3687314.793] -> [email protected](new id wl_callback@29) [3687314.910] -> [email protected](wl_buffer@28, 0, 0) [3687315.022] -> [email protected](0, 0, 800, 480) [3687315.140] -> [email protected]() [3687340.439] [email protected]_id(14) [3687340.620] [email protected]_id(26) [3687340.690] [email protected]_id(29) [3687340.811] [email protected](299368) [3687341.024] -> [email protected](new id wl_callback@26) [3687363.407] [email protected]_focus(90, 4, 0) [3687366.986] -> [email protected]_region(new id wl_region@14) [3687367.165] -> [email protected](0, 0, 800, 480) [3687367.286] -> [email protected]_opaque_region(wl_region@14) [3687367.347] -> [email protected]() [3687367.394] -> [email protected]() [3687376.888] [email protected]() [3687376.987] [email protected](299368) [3687377.077] -> [email protected](new id wl_callback@29) [3687377.161] -> [email protected](wl_buffer@30, 0, 0) Thanks & Regards, Vikash On Tue, Dec 15, 2015 at 8:24 PM, Vikas Patil <[email protected]> wrote: > If I force to pass the if condition as follows using the surface id > even though surfaces doesn't match, it is working. Does this might be > due to the way I created the surface 90? Surface 90 also has > subsurface, does it anyway related to subsurface? > > Alos "grab->touch->focus->surface" what this surface is and who creates it? > > surfID = interface->get_id_of_surface(surf_ctx->layout_surface); > > /* Touches set touch focus */ > > if (grab->touch->num_tp == 1) { > > if (surf == grab->touch->focus->surface || surfID == 90) { > > surf_ctx->focus |= ILM_INPUT_DEVICE_TOUCH; > > send_input_focus(seat->input_ctx, > > > interface->get_id_of_surface(surf_ctx->layout_surface), > > ILM_INPUT_DEVICE_TOUCH, ILM_TRUE); > > } > > > Thanks & Regards, > Vikash > > On Mon, Dec 14, 2015 at 8:53 PM, Vikas Patil <[email protected]> wrote: >> I am hitting else part of below code for this issue. Any ideas? >> >> touch_grab_down() from ivi-input-controller.c >> >> /* Touches set touch focus */ >> if (grab->touch->num_tp == 1) { >> if (surf == grab->touch->focus->surface) { >> surf_ctx->focus |= ILM_INPUT_DEVICE_TOUCH; >> send_input_focus(seat->input_ctx, >> >> interface->get_id_of_surface(surf_ctx->layout_surface), >> ILM_INPUT_DEVICE_TOUCH, ILM_TRUE); >> } else { >> surf_ctx->focus &= ~ILM_INPUT_DEVICE_TOUCH; >> <---------------------------------------------------------- >> send_input_focus(seat->input_ctx, >> >> interface->get_id_of_surface(surf_ctx->layout_surface), >> ILM_INPUT_DEVICE_TOUCH, ILM_FALSE); >> } >> } >> >> /* This code below is slightly redundant, since we have already >> * decided only one surface has touch focus */ >> if (!(surf_ctx->focus & ILM_INPUT_DEVICE_TOUCH)) >> continue; >> <----------------------------------------------------------------------------- >> >> >> Thanks & Regards, >> Vikash >> >> On Mon, Dec 14, 2015 at 3:25 PM, Vikas Patil <[email protected]> wrote: >>> Sorry. Forgot to attach the log file. Attached here. >>> >>> Thanks & Regards, >>> Vikas >>> >>> On Mon, Dec 14, 2015 at 3:24 PM, Vikas Patil <[email protected]> wrote: >>>> Hi Eugen Friedrich >>>> >>>> Thanks a lot for your quick reply. >>>> >>>> Attached here the file with WAYLAND_DEBUG=1 log when the gstreamer >>>> plug-in is in use. I can see "[email protected]_focus(90, 4, 0)" for >>>> the surface from plug-in but no touch events. >>>> >>>> Here is the output of APIs >>>> >>>> root@linux-9939-a1:~# LayerManagerControl get input device default >>>> capabilities >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> pointer >>>> keyboard >>>> touch >>>> >>>> root@linux-9939-a1:~# LayerManagerControl get surface 90 acceptance >>>> Interpreter error: 'acceptance' not recognized. >>>> >>>> root@orinoco-9939-a1:~# LayerManagerControl get input devices with all >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> default >>>> >>>> root@linux-9939-a1:~# LayerManagerControl get input focus >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> failed to get surface context in ilmControl >>>> surface 90: >>>> surface 63: >>>> surface 62: >>>> surface 61: >>>> surface 60: pointer keyboard >>>> >>>> >>>> Thanks & Regards, >>>> Vikas >>>> >>>> On Mon, Dec 14, 2015 at 3:01 PM, Friedrich, Eugen (ADITG/SW1) >>>> <[email protected]> wrote: >>>>> Hello Vikas, >>>>> >>>>> Could you please add the WAYLAND_DEBUG=1 traces from you application, to >>>>> see if the input events are reaching the client. >>>>> >>>>> Also the output of the following API would be helpful: >>>>> ilm_getInputFocus, >>>>> ilm_getInputDevices, >>>>> ilm_getInputAcceptanceOn(with you surface id) >>>>> >>>>> the API's will return a list of devices or surfaces, please print the >>>>> complete list. >>>>> >>>>> >>>>> Best regards >>>>> >>>>> Eugen Friedrich >>>>> Software Group I (ADITG/SW1) >>>>> >>>>> Tel. +49 5121 49 6921 >>>>> >>>>>> -----Original Message----- >>>>>> From: [email protected] >>>>>> [mailto:genivi- >>>>>> [email protected]] On Behalf Of Vikas Patil >>>>>> Sent: Samstag, 12. Dezember 2015 12:57 >>>>>> To: [email protected]; meta- >>>>>> [email protected]; Tanibata, Nobuhiko (ADITJ/SWG); Carlos Rafael >>>>>> Giani; wayland mailing list >>>>>> Subject: Touch events not reviving with wayland-ivi-extenssion 1.4.0 and >>>>>> wayland video sink >>>>>> >>>>>> Dear All, >>>>>> >>>>>> I am using wayland video sink (i.e. imxeglvivsink) from >>>>>> gstreamer1.0-plugins- >>>>>> imx [1] to play the video along with weston 1.8.0 and >>>>>> wayland-ivi-extenstion >>>>>> 1.4.0. I have modified “imxeglvivsink” to have the ilm and touch input >>>>>> support [2]. Basically I am posting touch events on GST bus and >>>>>> application >>>>>> want to have the touch can read the messages and process the touch. This >>>>>> is >>>>>> working fine if I don’t load the “ivi-input-controller.so”. If I load >>>>>> the “ivi-input- >>>>>> controller.so” >>>>>> I am not able to get the touch event inside this plug-in. I have tried >>>>>> setting >>>>>> touch input focus to the surface from this wayland video plug-in using >>>>>> “LayermanagerControl” and ilm_setInputFocus” [3] but no luck. >>>>>> >>>>>> >>>>>> Also touch works fine even if I load “ivi-input-controller.so” with other >>>>>> applications. So I suspect some modification are required to >>>>>> ”imxeglvivsink” >>>>>> [2] or “wayland-ivi-extension/weston”. >>>>>> >>>>>> Do you know what might be going wrong? Could anyone here give some >>>>>> suggestions/ideas to tryout and fix this? >>>>>> >>>>>> Also “LayerManagerControl get surface 90 acceptance” doesn’t seem to >>>>>> work for me. Any inputs for this? >>>>>> >>>>>> I have tried modifying “gst_imx_egl_viv_sink_egl_platform_mainloop” >>>>>> function in various ways but no luck and I think implementation is >>>>>> correct (as >>>>>> it works well without ivi-input-controller) >>>>>> >>>>>> Following is the platform setup and weston configuration. >>>>>> >>>>>> i.MX6 Duallite >>>>>> Linux 3.14.28 >>>>>> Weston 1.8.0 with (ivi-shell.so with fbdev backend and gal2d renderer) >>>>>> Wayland-ivi-extension 1.4.0 (using ivi-controller.so, >>>>>> ivi-input-controller.so >>>>>> gstreamer-imx plugin QTwayland 5.4.2/Qt 5.4.2 >>>>>> >>>>>> Weston.ini contains: >>>>>> >>>>>> [core] >>>>>> shell=ivi-shell.so >>>>>> >>>>>> [ivi-shell] >>>>>> ivi-module=ivi-controller.so,ivi-input-controller.so >>>>>> ivi-shell-user-interface=/usr/lib/weston/weston-ivi-shell-user-interface >>>>>> >>>>>> >>>>>> [1] https://github.com/Freescale/gstreamer-imx/tree/master/src/eglvivsink >>>>>> [2]See attached modified file “egl_platform_wayland.c” from imxeglvivsink >>>>>> [3] >>>>>> http://wiki.projects.genivi.org/index.php/Getting_Started_with_new_Input >>>>>> _Handling_APIs >>>>>> >>>>>> >>>>>> >>>>>> Thanks & Regards, >>>>>> Vikash -- _______________________________________________ meta-freescale mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-freescale
