[PATCH weston 1/2] compositor: add weston_surface_set_description()

Giulio Camuffo giuliocamuffo at gmail.com
Fri Nov 28 03:19:18 PST 2014


2014-11-27 12:42 GMT+02:00 Pekka Paalanen <ppaalanen at gmail.com>:
> On Thu, 27 Nov 2014 10:17:21 +0200
> Giulio Camuffo <giuliocamuffo at gmail.com> wrote:
>
>> Just a quick comment below, I haven't looked at it carefully yet.
>>
>> --
>> Giulio
>>
>> 2014-11-27 9:07 GMT+02:00 Pekka Paalanen <ppaalanen at gmail.com>:
>> > From: Pekka Paalanen <pq at iki.fi>
>> >
>> > When printing out logs from Weston's actions, mainly for debugging, it
>> > can be very difficult to identify the different surfaces.  Inspecting
>> > the configure function pointer is not useful, as the configure functions
>> > may live in modules.
>> >
>> > Add vfunc get_description to weston_surface, which will produce a short,
>> > human-readable description of the surface, which allows identifying it
>> > better, rather than just looking at the surface size, for instance.
>> >
>> > Set the description from most parts of Weston, to identify cursors and
>> > drag icons, and panels, backgrounds, screensavers and lock surfaces, and
>> > the desktop shell's application surfaces.
>> >
>> > Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
>> > ---
>> >  desktop-shell/input-panel.c |   9 ++++
>> >  desktop-shell/shell.c       | 101 ++++++++++++++++++++++++++++++++++++++++++++
>> >  src/compositor.c            |  17 ++++++++
>> >  src/compositor.h            |   7 +++
>> >  src/data-device.c           |  19 +++++++++
>> >  src/input.c                 |  10 +++++
>> >  6 files changed, 163 insertions(+)
>
> ...
>
>> > diff --git a/src/compositor.c b/src/compositor.c
>> > index 17e930c..ea5cc14 100644
>> > --- a/src/compositor.c
>> > +++ b/src/compositor.c
>> > @@ -2736,6 +2736,13 @@ weston_subsurface_parent_commit(struct weston_subsurface *sub,
>> >                 weston_subsurface_synchronized_commit(sub);
>> >  }
>> >
>> > +static int
>> > +subsurface_get_description(struct weston_surface *surface,
>> > +                          char *buf, size_t len)
>> > +{
>> > +       return snprintf(buf, len, "sub-surface");
>> > +}
>> > +
>> >  static void
>> >  subsurface_configure(struct weston_surface *surface, int32_t dx, int32_t dy)
>> >  {
>> > @@ -2819,6 +2826,14 @@ weston_surface_set_role(struct weston_surface *surface,
>> >         return -1;
>> >  }
>> >
>> > +WL_EXPORT void
>> > +weston_surface_set_description(struct weston_surface *surface,
>>
>> I find the naming a bit confusing, I'd expect this to set the
>> description of the surface, that is a char*. The get_description vfunc
>> on the other hand doesn't return the function passed here, but the
>> char*. I'd call it something like
>> weston_surface_set_description_func(), or maybe
>> weston_surface_set_descriptor().
>
> Yes, weston_surface_set_get_description_func() it would be indeed, but
> it was getting a bit long, especially when the argument is usually
> a fairly long word too.
>
> Descriptor smells a bit like an fd thing, though.
>
> weston_surface_set_... eh... umm
>
> What if I did s/description/label/g?
>
> So we'd have e.g.:
> weston_surface_set_label_func(surface, shell_surface_get_label)
> and weston_surface::get_label field.
>
> How's that?

I think that's ok.

>
>
> Thanks,
> pq
>
>
>>
>> > +                              int (*desc)(struct weston_surface *,
>> > +                                          char *, size_t))
>> > +{
>> > +       surface->get_description = desc;
>> > +}
>> > +


More information about the wayland-devel mailing list