[PATCH wayland-protocols v2] xdg-shell: Introduce xdg_tooltip

Giulio Camuffo giuliocamuffo at gmail.com
Wed Feb 3 09:11:24 UTC 2016


2016-02-03 11:07 GMT+02:00 Jonas Ådahl <jadahl at gmail.com>:
> On Wed, Feb 03, 2016 at 11:02:14AM +0200, Giulio Camuffo wrote:
>> 2016-02-03 11:00 GMT+02:00 Jasper St. Pierre <jstpierre at mecheye.net>:
>> > No? The parent is the surface the tooltip is laid on top of.
>>
>> So where do the contents of the tooltip come from?
>
> The tooltip is created from an xdg_surface. As of patch 1/3 of the
> series this patch replies to, each "role" (xdg_toplevel, xdg_popup and
> xdg_tooltip) is created from a xdg_surface object which contains the
> common functionality needed by all xdg_surface based roles.
>
> So its:
>
> Create a xdg_surface A from a wl_surface 1.
> Create a xdg_toplevel from a xdg_surface A.
>
> Create a xdg_surface B from a wl_surface 2.
> Create a xdg_tooltip from a xdg_surface B passing the xdg_surface A as
> the parent.
>
> The tooltip is backed by wl_surface 2, the toplevel is backed by
> wl_surface 1.

Right, sorry. I've been out of the loop for a bit and i forgot that
the requests have an implicit 'this' argument.

>
> Jonas
>
>>
>> >
>> > On Wed, Feb 3, 2016 at 12:59 AM, Giulio Camuffo <giuliocamuffo at gmail.com> wrote:
>> >> 2016-02-03 10:39 GMT+02:00 Jonas Ådahl <jadahl at gmail.com>:
>> >>> An xdg_tooltip is a new window type used to implement tooltip like
>> >>> surfaces. See the interface documentation for details.
>> >>>
>> >>> Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
>> >>> ---
>> >>>
>> >>> Changes since v1:
>> >>>
>> >>> Various wording changes as suggested by Mike.
>> >>>
>> >>> Added missing version attribute and <description/>.
>> >>>
>> >>>
>> >>>  unstable/xdg-shell/xdg-shell-unstable-v6.xml | 41 ++++++++++++++++++++++++++++
>> >>>  1 file changed, 41 insertions(+)
>> >>>
>> >>> diff --git a/unstable/xdg-shell/xdg-shell-unstable-v6.xml b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
>> >>> index f2eba64..a164bd6 100644
>> >>> --- a/unstable/xdg-shell/xdg-shell-unstable-v6.xml
>> >>> +++ b/unstable/xdg-shell/xdg-shell-unstable-v6.xml
>> >>> @@ -168,6 +168,20 @@
>> >>>        <arg name="y" type="int"/>
>> >>>      </request>
>> >>>
>> >>> +    <request name="get_tooltip">
>> >>> +      <description summary="assign the xdg_tooltip surface role">
>> >>> +       This creates an xdg_tooltip for the given xdg_surface and gives the
>> >>> +       associated wl_surface the xdg_tooltip role.
>> >>> +
>> >>> +       See the documentation of xdg_tooltip for more details about what an
>> >>> +       xdg_tooltip is and how it is used.
>> >>> +      </description>
>> >>> +      <arg name="id" type="new_id" interface="zxdg_tooltip_v6"/>
>> >>> +      <arg name="parent" type="object" interface="zxdg_surface_v6"/>
>> >>> +      <arg name="x" type="int"/>
>> >>> +      <arg name="y" type="int"/>
>> >>> +    </request>
>> >>
>> >> Hi, I have just a comment here:
>> >>
>> >> I understand that 'parent' here is the actual tooltip surface, right?
>> >> The description of the zxdg_tooltip_v6 interface below uses parent to
>> >> refer to another surface, and that's i suppose the surface set with
>> >> xdg_surface.set_parent(), right? I find that confusing, i would rename
>> >> 'parent' in get_tooltip to 'surface', and maybe clarify in the
>> >> description what is the actual parent.
>> >>
>> >>
>> >> Cheers,
>> >> Giulio
>> >>
>> >>
>> >>> +
>> >>>      <request name="set_window_geometry">
>> >>>        <description summary="set the new window geometry">
>> >>>         The window geometry of a surface is its "visible bounds" from the
>> >>> @@ -650,4 +664,31 @@
>> >>>
>> >>>    </interface>
>> >>>
>> >>> +  <interface name="zxdg_tooltip_v6" version="1">
>> >>> +    <description summary="tooltip surface">
>> >>> +      This interface defines an xdg_tooltip role that provides functionality
>> >>> +      related to tooltip like surfaces.
>> >>> +
>> >>> +      An xdg_tooltip is a temporary surface which is displayed over its parent
>> >>> +      xdg_surface. The last-created xdg_tooltip surface will always be the
>> >>> +      top-most child of the parent xdg_surface.
>> >>> +
>> >>> +      The parent surface must either have the surface role xdg_toplevel,
>> >>> +      xdg_popup or xdg_tooltip.
>> >>> +
>> >>> +      An xdg_tooltip does not take an active grab while mapped. xdg_tooltip
>> >>> +      surfaces are either directly unmapped by clients using the
>> >>> +      xdg_tooltip.destroy request or indirectly unmapped when their parent
>> >>> +      surface is unmapped.
>> >>> +
>> >>> +      An xdg_tooltip obeys normal input region semantics.
>> >>> +    </description>
>> >>> +
>> >>> +    <request name="destroy" type="destructor">
>> >>> +      <description summary="destroy the xdg_tooltip object">
>> >>> +       Unmap the tooltip surface and destroy the object.
>> >>> +      </description>
>> >>> +    </request>
>> >>> +  </interface>
>> >>> +
>> >>>  </protocol>
>> >>> --
>> >>> 2.4.3
>> >>>
>> >>> _______________________________________________
>> >>> wayland-devel mailing list
>> >>> wayland-devel at lists.freedesktop.org
>> >>> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>> >
>> >
>> >
>> > --
>> >   Jasper


More information about the wayland-devel mailing list