[PATCH weston] input: check if the resource is valid in seat_get_pointer

Kristian Høgsberg hoegsberg at gmail.com
Mon Jul 8 10:24:07 PDT 2013


On Mon, Jul 08, 2013 at 04:15:07PM +0200, Giulio Camuffo wrote:
> There is not much else to say. surfaces created with weston_surface_create
> have
> a NULL resource, and if that gets picked by default_grab_focus (in input.c)
> the next
> seat_get_pointer will break.
> 
> I guess another solution could be to make weston_compositor_pick_surface not
> pick surfaces without a valid resource, but i'm not sure that wouldn't
> break something
> else.

Yeah, I think this is fine.  Thanks Giulio, patch committed.

Kristian

> 2013/7/8 Rob Bradford <robert.bradford at intel.com>
> 
> > Can you provide some more explanation in your commit message about why
> > the pointer might have a surface focussed but that surface does not
> > have a valid resource. (I'm wondering if this is fixing the symptom of
> > a problem elsewhere.)
> >
> > Rob
> >
> > On 7 July 2013 16:38, Giulio Camuffo <giuliocamuffo at gmail.com> wrote:
> > > seat->pointer->focus->resource can be NULL, if the surface was
> > > created with weston_surface_create.
> > > ---
> > >  src/input.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/src/input.c b/src/input.c
> > > index 644487a..a7a37e5 100644
> > > --- a/src/input.c
> > > +++ b/src/input.c
> > > @@ -1181,7 +1181,7 @@ seat_get_pointer(struct wl_client *client, struct
> > wl_resource *resource,
> > >         wl_resource_set_implementation(cr, &pointer_interface,
> > seat->pointer,
> > >                                        unbind_resource);
> > >
> > > -       if (seat->pointer->focus &&
> > > +       if (seat->pointer->focus && seat->pointer->focus->resource &&
> > >             wl_resource_get_client(seat->pointer->focus->resource) ==
> > client) {
> > >                 struct weston_surface *surface;
> > >                 wl_fixed_t sx, sy;
> > > --
> > > 1.8.3.2
> > >
> > > _______________________________________________
> > > wayland-devel mailing list
> > > wayland-devel at lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> >

> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel



More information about the wayland-devel mailing list