<p dir="ltr"><br>
On Aug 14, 2013 5:14 AM, "Daniel Stone" <<a href="mailto:daniel@fooishbar.org">daniel@fooishbar.org</a>> wrote:<br>
><br>
> On 14 August 2013 10:03, Rob Bradford <<a href="mailto:robert.bradford@intel.com">robert.bradford@intel.com</a>> wrote:<br>
> > On 13 August 2013 20:11, Rob Bradford <<a href="mailto:robert.bradford@intel.com">robert.bradford@intel.com</a>> wrote:<br>
> >> +static void<br>
> >> +pointer_release(struct wl_client *client, struct wl_resource *resource)<br>
> >> +{<br>
> >> +       wl_resource_destroy(resource);<br>
> >> +}<br>
> >> +<br>
> ><br>
> > Wondering if we should also send leave events here if the pointer has<br>
> > a focus...The only other time we destroy an input resource is because<br>
> > the client has gone away and in that case the surface too. Perhaps<br>
> > worth extending the testing to enable pairs of get_pointer/release.<br>
><br>
> In principle I like this, since it avoids a roundtrip to know that you<br>
> won't get any more events from the device, but also hits the whole<br>
> non-null vs. zombie object problem, no?<br>
><br>
> Cheers,<br>
> Daniel</p>
<p dir="ltr">Yes, this explicitly causes the same NULL proxy problem. I really don't see how a leave event is appropriate here. That would kind of change what a leave event means because the pointer may not have left anything. Since we don't want to send to all the other resources associated to that pointer, this leave event would also be resource-specific and not pointer-specific.</p>

<p dir="ltr">Also, I would expect clients to call wl_proxy_destroy immediately after calling wl_pointer_release anyway and in this case they simply won't get anymore events.</p>
<p dir="ltr">--Jason Ekstrand</p>