Merge branch 'foreign_toplevel_appmenu' into 'master'

foreign-toplevel-management: support sending additional info about DBus interfaces supported by apps (including global menus)

See merge request wlroots/wlr-protocols!131
This commit is contained in:
Daniel Kondor 2025-08-30 16:12:55 +00:00
commit bc8f1568cb

View file

@ -25,7 +25,7 @@
THIS SOFTWARE.
</copyright>
<interface name="zwlr_foreign_toplevel_manager_v1" version="3">
<interface name="zwlr_foreign_toplevel_manager_v1" version="4">
<description summary="list and control opened apps">
The purpose of this protocol is to enable the creation of taskbars
and docks by providing them with a list of opened applications and
@ -68,7 +68,7 @@
</event>
</interface>
<interface name="zwlr_foreign_toplevel_handle_v1" version="3">
<interface name="zwlr_foreign_toplevel_handle_v1" version="4">
<description summary="an opened toplevel">
A zwlr_foreign_toplevel_handle_v1 object represents an opened toplevel
window. Each app may have multiple opened toplevels.
@ -266,5 +266,43 @@
</description>
<arg name="parent" type="object" interface="zwlr_foreign_toplevel_handle_v1" allow-null="true"/>
</event>
<!-- Version 4 additions -->
<event name="client_dbus_annotation" since="4">
<description summary="DBus interface available for the client">
This event is emitted when the client associated with this surface
announces that it implements a specific DBus interface, available
at the given DBus name and object path. The DBus interface announced
by this event is not tied to any specific surface, but to a client app.
If an interface is available, both bus_name and object_path will be
non-null. bus_name will typically refer to an unique name, but can
potentially be a well-known name as well. If a previously announced
interface is no longer available, the event will be emitted for it
with bus_name and object_path set to null.
</description>
<arg name="interface" type="string" allow-null="false" summary="The name of the supported DBus interface" />
<arg name="bus_name" type="string" allow-null="true" summary="The bus name where the interface is available" />
<arg name="object_path" type="string" allow-null="true" summary="The DBus object path that implements the interface" />
</event>
<event name="surface_dbus_annotation" since="4">
<description summary="DBus interface available for the client">
This event is emitted when the client associated with this surface
announces that it implements a specific DBus interface, available
at the given DBus name and object path. The DBus interface announced
by this event is specific to this toplevel.
If an interface is available, both bus_name and object_path will be
non-null. bus_name will typically refer to an unique name, but can
potentially be a well-known name as well. If a previously announced
interface is no longer available, the event will be emitted for it
with bus_name and object_path set to null.
</description>
<arg name="interface" type="string" allow-null="false" summary="The name of the supported DBus interface" />
<arg name="bus_name" type="string" allow-null="true" summary="The bus name where the interface is available" />
<arg name="object_path" type="string" allow-null="true" summary="The DBus object path that implements the interface" />
</event>
</interface>
</protocol>