On 10/31/2016 11:08 AM, Mike Blumenkrantz wrote: > That seems wrong; the surface creation callback in the compositor creates a > client for all surfaces unconditionally. Are you sure that setting the > window type doesn't block some expected client-side functionality? >
Ok, so the only thing being blocked on the client-side is the creation of the xdg or wl_shell surface....which should not make a difference. I'll dig into why the compositor is not creating a client for this surface.... > On Mon, Oct 31, 2016 at 11:02 AM Christopher Michael <[email protected]> > wrote: > >> On 10/31/2016 10:21 AM, Mike Blumenkrantz wrote: >>> This seems like it should be a client bug and not something which >> requires >>> compositor changes... >>> >> >> Not really. With EFL wayland clients now doing their own cursors, we end >> up creating a new Ecore_Wl2 window for the pointer surface to be drawn >> into. When that window is created, the "type" is set to >> ECORE_WL2_WINDOW_TYPE_NONE (as it's not a toplevel, or dnd, etc, etc). >> >> When the surface type is set to none (which ANY efl app can make happen >> via API), then no wl_resource_user_data is set on that surface....which >> results in no e_client. Window type None and type Dnd also have no shell >> surface. I noticed that the wl_weekeyboard module also creates windows >> of type None. >> >> One could argue that we maybe should be setting wl_resource_user_data >> regardless of window type.... >> >>> On Mon, Oct 31, 2016 at 9:27 AM Christopher Michael < >> [email protected]> >>> wrote: >>> >>>> devilhorns pushed a commit to branch master. >>>> >>>> >>>> >> http://git.enlightenment.org/core/enlightenment.git/commit/?id=fbb17af2d6a9c2671d0c134f7413bfb068a0e37e >>>> >>>> commit fbb17af2d6a9c2671d0c134f7413bfb068a0e37e >>>> Author: Chris Michael <[email protected]> >>>> Date: Mon Oct 31 09:25:51 2016 -0400 >>>> >>>> don't crash is surface resource has no e_client >>>> >>>> wl_resource_get_user_data(surface_resource) could return NULL if the >>>> surface resource has no user data set. This happens with Ecore_Wl2 >>>> Windows which are set to type 'None', so add check for valid >> e_client. >>>> >>>> Signed-off-by: Chris Michael <[email protected]> >>>> --- >>>> src/bin/e_comp_wl_input.c | 3 +++ >>>> 1 file changed, 3 insertions(+) >>>> >>>> diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c >>>> index 3a77da8..e396572 100644 >>>> --- a/src/bin/e_comp_wl_input.c >>>> +++ b/src/bin/e_comp_wl_input.c >>>> @@ -69,7 +69,10 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct >> wl_client >>>> *client, struct wl_resou >>>> e_pointer_object_set(e_comp->pointer, NULL, x, y); >>>> return; >>>> } >>>> + >>>> ec = wl_resource_get_user_data(surface_resource); >>>> + if (!ec) return; >>>> + >>>> if (!ec->re_manage) >>>> { >>>> ec->comp_data->cursor = ec->re_manage = 1; >>>> >>>> -- >>>> >>>> >>>> ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today. http://sdm.link/xeonphi _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
